c# - 这种初始化方法有什么区别?

标签 c# .net

这两个代码有什么区别?

class SomeClass   
{   

   SomeType val = new SomeType();   

}   

class SomeClass  
{      
   SomeType val;   

   SomeClass()   
   {   
       val = new SomeType();   
   }   

}   

首选哪种方法?

最佳答案

它们之间几乎没有区别。在这两种情况下,字段的分配都将发生在构造函数中。但是,这与基类构造函数的发生方式有所不同。采取以下代码:

class Base
{
    public Base()
    {

    }
}

class One : Base
{
    string test = "text";
}

class Two : Base
{
    string test;
    public Two()
    {
        test = "text";
    }
}

在这种情况下,基类构造函数将类中的字段赋值后被调用One , 但类作业之前 Two .

关于c# - 这种初始化方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2475420/

相关文章:

c# - Azure 数据库和照片

c# - 使用数据表的内容更新 SQL 表

c# - 带有手动词法分析器的 ANTLR 解析器

.net - 如何在 Visual Studio 2017 专业版中启用 ASP.Net Core 2.2

.net - ASP.NET 站点地图配置错误

.net - SQLite:没有这样的模块:System.Data.SQLite.dll 1.0.101.0 的 fts5 错误

javascript - 当存在字节顺序标记时,CssSquidSensor 和 JavaScriptSquidSensor 都失败并出现解析错误

c# - 如何正确安装 stylecop?

c# - 带有母版页的 aspx 页面上的图像

c# - Observable.Defer - 需要澄清它到底做了什么