2种通过设置属性值来创建新对象的方法

时间:2010-12-22 10:48:32

标签: c# .net

  

可能重复:
  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" };

这两种情况有什么区别,如果它们相同,我们为什么需要两种情况? 感谢。

2 个答案:

答案 0 :(得分:15)

两个例子之间绝对没有区别。

在这种情况下,仅在这种情况下,构造函数上的()是可选的。

答案 1 :(得分:3)

如果您需要将参数传递给构造函数,请使用()

否则它不会产生任何差异......

它们都很重要,如果你在Question Class中添加任何构造函数,那么你需要传递args,这可以使用()