【发布时间】:2011-05-10 01:45:04
【问题描述】:
我需要给我的属性初始值,我想知道是否有比使用构造函数更简单的方法。
【问题讨论】:
-
我很好奇为什么你认为演员不“简单”?
-
var myClass = new MyClass {Property1 = value1, Property2 = value2};
标签: c# oop class constructor properties
我需要给我的属性初始值,我想知道是否有比使用构造函数更简单的方法。
【问题讨论】:
标签: c# oop class constructor properties
您是否使用自动实现的属性?值类型属性将被初始化为其默认值。引用类型将被初始化为 null。
如果您希望它们将它们初始化为其他一些,我认为最好的选择是在构造函数中设置它们。
如果您不使用自动实现的属性,您可以在声明它们的位置初始化它们。
记住order in which the objects fields and constructors are initialized.也很有用
【讨论】:
如果您正在利用自动属性,构造函数是最简单的方法。如果你不是,那么你的成员变量可以定义默认值。
private string _someString = "Hello.";
但是,您必须自己定义 getter 和 setter。
public string SomeString
{
get { return _someString; }
set { _someString = value; }
}
这不会比在构造函数中定义默认值更简单。
【讨论】:
如果你只是想初始化属性值,那么构造函数就足够了我不明白为什么你认为它们不简单。
如果你愿意,你可以这样做,你可以像这样初始化变量:
int _myProperty = 5;
public int MyProperty
{
get{ return _myProperty ;}
set { _myProperty=value; }
}
【讨论】:
我喜欢以不同的方式思考这个问题。如果该值是创建实例的强制,则它需要是构造函数的参数。
但是,如果该值是可选,那么通过属性设置它就可以了。
【讨论】:
构造函数最适合这样做。你怎么也可以调用方法。
也检查以下链接 Initializing C# auto-properties
【讨论】: