这个初始化方法有什么区别?

时间:2010-03-19 06:34:29

标签: c# .net

这两个代码有什么区别?

class SomeClass   
{   

   SomeType val = new SomeType();   

}   

class SomeClass  
{      
   SomeType val;   

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

}   

更喜欢哪种方法?

2 个答案:

答案 0 :(得分:7)

几乎之间没有区别。在两种情况下,字段的赋值都将在构造函数中发生。但是,与基类构造函数相比,它有多么不同。请使用以下代码:

class Base
{
    public Base()
    {

    }
}

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

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

在这种情况下,基类构造函数将在类One中的字段赋值后调用,但之前类{{1}中的赋值}。

答案 1 :(得分:2)

第一个版本允许您定义多个构造函数,而不必记住将= new SomeType()放在每个构造函数中。