可能重复:
Why are C# 3.0 object initializer constructor parentheses optional?
大家好
我有一个Question
课,其中有一个属性Text
public class Question
{
public string Text { get; set; }
}
现在我想通过赋予属性值来创建这种类型的对象 我可以通过以下两种方式做到这一点:
Question q = new Question { Text = "Some question" };
和
Question q = new Question() { Text = "Some question" };
这两种情况有什么区别,如果它们相同,我们为什么需要两种情况? 感谢。
答案 0 :(得分:15)
两个例子之间绝对没有区别。
在这种情况下,仅在这种情况下,构造函数上的()
是可选的。
答案 1 :(得分:3)
如果您需要将参数传递给构造函数,请使用()
。
否则它不会产生任何差异......
它们都很重要,如果你在Question Class中添加任何构造函数,那么你需要传递args,这可以使用()
。