C# 构造函数还是属性:在赋值时,哪一个是更好的选择
当我们在赋值时应该在属性上使用构造函数,反之亦然。当您需要任意合理的初始值时,可以使用构造函数;当您希望以后可以更改值时,可以使用属性。如果要构造对象确实需要参数值,则可以使用构造函数(没有它们,对象无法开始活动)。对具有可接受默认值的参数使用属性,因此完全不分配它们是可以的。您可以提供一些额外的构造函数,这些构造函数将分配一些属性作为简写,以方便您的用户。构造函数是一种非常方便且功能强大的合同类型-一种要求用户提供特定属性的方法因此,对于实例正常运行所需的信息,请使用构造函数参数。这是依赖项注入的基本概念-在开始之前,必须向您注入(提供)您工作所依赖的任何内容C# 构造函数还是属性:在赋值时,哪一个是更好的选择,c#,properties,constructor,C#,Properties,Constructor,当我们在赋值时应该在属性上使用构造函数,反之亦然。当您需要任意合理的初始值时,可以使用构造函数;当您希望以后可以更改值时,可以使用属性。如果要构造对象确实需要参数值,则可以使用构造函数(没有它们,对象无法开始活动)。对具有可接受默认值的参数使用属性,因此完全不分配它们是可以的。您可以提供一些额外的构造函数,这些构造函数将分配一些属性作为简写,以方便您的用户。构造函数是一种非常方便且功能强大的合同类型-一种要求用户提供特定属性的方法因此,对于实例正常运行所需的信息,请使用构造函数参数。这是依赖项注
属性可能代表一个有趣的问题。一般来说,经验告诉我,只要可能,属性应该是只读的,对象通常应该尽可能在外部保持不变。为属性添加公共setter会增加类的复杂性。当然,对象类型总是有-entities是一个很好的例子,其中setter是有意义的。但对于大多数对象,state的“write to via constructor”/“read from via properties”模式大大降低了我负责的应用程序的复杂性和bug风险。在一些情况下,可变属性可能更可取:
我猜你的意思是分配初始值…@drachenstern-谢谢你的建议link@user498432~z~如果这是你需要的,请告诉我,我会把它作为一个答案,这样你就可以接受其他人提出的同样问题。我总是喜欢属性,如果你的对象不需要任意初始值,也就是说它有理智,那好吗当然,构造函数方法本身中的值。