c# - 有没有在构造函数中设置默认值的好习惯?
问题描述
考虑一个简单的类
public class MyClass
{
private int myProperty
...
public int MyProperty
{
get
{
return myProperty;
}
set
{
// some evaluation/condition
myProperty= value;
}
}
...
}
现在,如果我想创建一个空的构造函数,在其中为类属性设置默认值,我可以这样做:
public MyClass()
{
myProperty = 1;
...
}
或者这样:
public MyClass()
{
MyProperty = 1;
...
}
这两个示例似乎都有效,因为我永远不会设置默认值,这不符合 setter 评估中的要求。问题是,是否有最佳实践或者无论如何都没有关系?一个或另一个的优势是什么(因为我找不到)?有没有参考,这个问题在哪里解决?
到目前为止,我遇到过来自许多不同开发人员的代码,他们使用一种或两种方式......
解决方案
您可以同时使用两者。但我更喜欢第一个。为什么?因为属性使用的值是直接赋值的。对于上面的 C# 6,您可以直接在属性中使用默认值,而无需使用构造函数。
public class Person
{
public string FirstName { get; set; } = "<first_name>";
public string LastName { get; set; } = "<last_name">;
}
推荐阅读
- tensorflow - 具有扩展批量形状的 Keras Conv2D
- git - 检查一个分支是否完全“在”另一个分支之上
- java - OnClick 仅 image2 更改
- reactjs - 反应钩子 useState 消费对象
- python - 如何阻止我的代码打印额外的问题?
- java - 拆分字符串不包括java中的字符串
- c++ - 为什么模板函数前面需要typename?
- ios - 插件如何在后台的另一个插件的回调中使用?
- python - 在创建由两个子模型组成的模型时出现“您必须为占位符张量提供一个值”错误,所有子模型都是使用功能 API 创建的
- python - Kivy 处理多个按钮事件