如何在C#中对继承的基础构造函数进行操作?

dan*_*ine 5 c#

public class ClassA
{
    public ClassA(string someString){}
}

public class ClassB : ClassA
{
    public ClassB(string someString):base(someString.ToLower()){}
}
Run Code Online (Sandbox Code Playgroud)

我调用继承的ClassB构造函数.我传入null.ToLower()在null上抛出异常.我希望在此之前检查null.我怎样才能做到这一点?

Ant*_*lev 7

简单.使用null-coalescing运算符:

public ClassB(string someString) : 
    base((someString ?? "").ToLower())
{
}
Run Code Online (Sandbox Code Playgroud)

或使用三元运算符

public ClassB(string someString) : 
    base(someString == null ? "" : someString.ToLower())
{
}
Run Code Online (Sandbox Code Playgroud)

更好的是,我建议你添加一个no-arg constuctor ClassB,它会调用base(string.Empty).


Ger*_*nck 6

试试这个:

base(someString == null ? string.Empty : someString.ToLower())
Run Code Online (Sandbox Code Playgroud)