C#在构造函数中初始化无法正常工作

NullReferenceException

我有一个属性,用于检查Version Contorl是否为null。如果为null,则使用设置版本控件的值tpc.GetService<VersionControlServer>();问题是,即使我设置了它,它仍然返回null。

private VersionControlServer versionControl;

public VersionControlServer VersionControl
{
    get 
    {
    return this.versionControl; 
    }   
    set 
    {
        if (versionControl == null)
        {
        this.versionControl = this.tpc.GetService<VersionControlServer>();
        }
    }
}
大卫·皮尔金顿(David Pilkington)

您的空支票放在错误的位置。您应该将其放在中get并在那里进行初始化。

每次设置时,您似乎都在重新初始化它。也许您应该value在设置时使用您可以将其删除(set即是),但这会使此属性生效readonly

public VersionControlServer VersionControl
{
   get 
   {
      if (versionControl == null)
      {
        this.versionControl = this.tpc.GetService<VersionControlServer>();
      }

      return this.versionControl; 
   }   
   set 
   {
     this.versionControl = value;   
   }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法更改但需要在构造函数中初始化的C#变量

无法在复制构造函数中初始化数组

无法从委派构造函数的初始化列表中初始化向量

C++ - 构造函数中的 std::vector 初始化

C ++在构造函数中初始化对象(多态)

在类构造函数中初始化const向量(C ++)

C ++-在构造函数中初始化指针数组

在构造函数 C++ 中初始化结构向量

C++ 构造函数中的成员初始化语法

C++中构造函数初始化对象的问题

C ++初始化构造函数初始化器列表中的模板数组

C ++初始化字段直接与默认构造函数中的初始化列表

在构造函数中初始化的变量未保持初始化状态(C ++)

在构造函数中初始化日历

在构造函数中初始化流

构造函数初始化器列表-可以工作吗?

构造函数是在C#中初始化类中非空属性的唯一方法吗?

无法在派生类的构造函数的初始化中访问受保护的函数

C#中的PortableDeviceManagerClass无法初始化

ngrx / store初始化存储无法正常工作

UIColor扩展便利初始化无法正常工作

Swift 2.0初始化嵌套字典无法正常工作

.map无法在未初始化的数组上正常工作

在构造函数中初始化静态函数指针

序列化在构造函数中初始化的映射

无法通过 Java 中的构造函数初始化对象:错误编译

“无法访问未初始化的变量。” 在类构造函数中

无法掌握Java中的构造函数和类(初始化对象)

C# 部分类:非静态字段初始化是否在构造函数之前执行?