我希望在新课时调用一些函数,如下所示:
MyClass myClass = new MyClass().FuncA().FuncB().FuncC();
我在Android
中使用了很多代码,我想在C#
为实现这一目标,我将FuncA
和FuncB
的返回值设为this
。
我认为这样可行,因为它在构建期间不会显示错误。
但它会在运行时抛出错误:
未处理的类型' System.NullReferenceException'发生在Project.exe
附加信息:未将对象引用设置为对象的实例。
以下两行都不起作用:
MyClass myClass = new MyClass(0).FuncA().FuncB(myClass.Number);
MyClass myClass = (new MyClass(0)).FuncA().FuncB(myClass.Number);
MyClass.cs
class MyClass
{
public int Number;
public MyClass(int num)
{
Number = num;
}
public MyClass FuncA()
{
...
return this;
}
public MyClass FuncB(int num)
{
...
return this;
}
}
有人能告诉我错误发生的原因,以及如何解决?将它拆分为2行效果很好,但我希望只在1行中进行。
MyClass myClass = new MyClass(0);
myClass.FuncA().FuncB(myClass.Number); //Works well
感谢任何帮助。