请考虑以下代码段:
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多个属性,我对此问题进行了简化。
我的问题是,这里是否有区别,还是两者都在做相同的事情?或更多是优先选择的情况。
在此先感谢您的帮助。
答案 0 :(得分:0)
我认为这里的最大区别是,通过构造一个采用这些参数的构造函数,可以强制Foo用户在实例化Foo时提供某些值。 除此之外,它是首选项。