首页 > 其他 > 详细

ReSharper warning: Virtual member call in a constructor

时间:2015-10-14 12:04:10      阅读:430      评论:0      收藏:0      [点我收藏+]

1.构造函数的执行顺序是:基类--->派生类

2.如果虚方法被重写后,由于基类中调用了虚方法,此时调用的是最外层的被重写后的虚方法,此时可能会发生异常

举例:

class Parent
{
    public Parent()
    {
        DoSomething();
    }
    protected virtual void DoSomething() 
    {
    }
}

class Child : Parent
{
    private string foo;
    public Child() { foo = "HELLO"; }
    protected override void DoSomething()
    {
        Console.WriteLine(foo.ToLower());
    }
}

如果实例化Child会抛出NullReferenceException异常。

详情请参考:http://stackoverflow.com/questions/119506/virtual-member-call-in-a-constructor

ReSharper warning: Virtual member call in a constructor

原文:http://www.cnblogs.com/dongshuangjie/p/4876616.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!