【发布时间】:2018-11-20 13:52:15
【问题描述】:
考虑以下代码sn-p:
public class Foo
{
public int ID { get; set; }
public string FirstName { get; set; }
...
public Foo(int Id, string firstName)
{
ID = Id;
FirstName = firstName;
}
}
假设我们有一个将Foo 对象作为参数的方法。我可以按如下方式创建对象:
var first = new Foo { ID = 1, FirstName = "Test"};
var second = new Foo(1, "Test");
然后传递给接受对象作为参数的方法。我的实际类包含 10 多个属性,我为这个问题对其进行了简化。
我的问题是,这里有区别还是两者都做同样的事情?或者这更像是一种偏好。
提前感谢您的帮助。
【问题讨论】:
-
您应该只将不可变值作为参数传递给构造函数或“在构造上必须具有有效值”值(在余下的生命周期中)。其余的都是可变属性。
-
您实际上在问这两个对象初始化之间有什么区别......并且标题是关于将对象传递给方法。这是误导。改写你的问题会让你回答像here
-
您实际上不能使用发布的类使用“第一个”初始化。 (因为它没有空的ctor)
标签: c#