正确声明属性
Declaring properties properly
出于某种原因,自上次 Visual Studio 2015 年更新以来,当 运行 我从 Grape City ActiveReports 生成报告时,我的代码因 Whosebug 而崩溃。当我在报告上设置属性时,它似乎崩溃了。问题是哪种是定义属性的最佳方式?
我想向我的 class 对象发送一些值,例如:
MyClass clsObj = new MyClass();
clsObj.MyProperty = 1;
这是我现在做的示例:
public class MyClass() {
public int MyProperty;
}
但是如果你使用 prop 的快捷方式并按 Tab 键你会得到这个:
public class MyClass() {
public int MyProperty { get; set; }
}
然后我看到人们在哪里这样做:
public class MyClass() {
private int _MyProperty;
public int MyProperty { get { return _MyProperty; } set {_MyProperty = value; } }
}
最佳做法是什么?
这完全取决于您想如何使用您的财产。
通常属性的写法是这样的:
public int MyProperty { get; set; }
上面的代码和这样写是一样的:
public int MyProperty { get { return _MyProperty; } set {_MyProperty = value; } }
除非您想在属性 getter 和 setter.
中执行一些其他逻辑,否则您不需要额外的支持字段
在 C# 6.0 中,您现在可以像这样执行 属性 初始化程序:
public DateTime TimeStamp { get; } = DateTime.UtcNow;
您可以使用它而不是在 class.
的构造函数中初始化 属性
至于你的代码不能用,我真的不知道,你没有发布足够的信息。
Microsoft 在此处提供了大量有关 c# 6.0 属性的信息:
出于某种原因,自上次 Visual Studio 2015 年更新以来,当 运行 我从 Grape City ActiveReports 生成报告时,我的代码因 Whosebug 而崩溃。当我在报告上设置属性时,它似乎崩溃了。问题是哪种是定义属性的最佳方式?
我想向我的 class 对象发送一些值,例如:
MyClass clsObj = new MyClass();
clsObj.MyProperty = 1;
这是我现在做的示例:
public class MyClass() {
public int MyProperty;
}
但是如果你使用 prop 的快捷方式并按 Tab 键你会得到这个:
public class MyClass() {
public int MyProperty { get; set; }
}
然后我看到人们在哪里这样做:
public class MyClass() {
private int _MyProperty;
public int MyProperty { get { return _MyProperty; } set {_MyProperty = value; } }
}
最佳做法是什么?
这完全取决于您想如何使用您的财产。
通常属性的写法是这样的:
public int MyProperty { get; set; }
上面的代码和这样写是一样的:
public int MyProperty { get { return _MyProperty; } set {_MyProperty = value; } }
除非您想在属性 getter 和 setter.
中执行一些其他逻辑,否则您不需要额外的支持字段在 C# 6.0 中,您现在可以像这样执行 属性 初始化程序:
public DateTime TimeStamp { get; } = DateTime.UtcNow;
您可以使用它而不是在 class.
的构造函数中初始化 属性至于你的代码不能用,我真的不知道,你没有发布足够的信息。
Microsoft 在此处提供了大量有关 c# 6.0 属性的信息: