C#多个函数调用new

时间:2016-03-20 16:39:47

标签: c# constructor

我希望在新课时调用一些函数,如下所示:

MyClass myClass = new MyClass().FuncA().FuncB().FuncC();

我在Android中使用了很多代码,我想在C#

中做同样的事情

为实现这一目标,我将FuncAFuncB的返回值设为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

感谢任何帮助。

0 个答案:

没有答案