C# 跳过模型类上的字段
最近,在阅读了大量有关Internet的教程后,我注意到一些开发人员跳过了在模型类中编写字段,而只使用属性,如下所示:C# 跳过模型类上的字段,c#,automatic-properties,C#,Automatic Properties,最近,在阅读了大量有关Internet的教程后,我注意到一些开发人员跳过了在模型类中编写字段,而只使用属性,如下所示: public class MyClass { public string MyProperty { get; private set; } } 除了编写更少的代码之外,这样做的好处是什么?虽然我确实意识到setter是私有的,但如果不指定私有字段,是否存在某种安全问题?换句话说:这里的最佳实践是什么?编写没有字段和相关属性的模型类,还是只使用这些没有字段的公共属性 提
public class MyClass
{
public string MyProperty { get; private set; }
}
除了编写更少的代码之外,这样做的好处是什么?虽然我确实意识到setter是私有的,但如果不指定私有字段,是否存在某种安全问题?换句话说:这里的最佳实践是什么?编写没有字段和相关属性的模型类,还是只使用这些没有字段的公共属性
提前感谢,
Bo在c#3.0及更高版本中,编译器将为您将局部变量放入MSIL中。它使代码更易于阅读和维护(需要跟踪的变量更少,等等)
应该没有安全问题,因为它在内部创建的是本地范围的成员变量
有关更多信息,请参见。在c#3.0及更高版本中,编译器将为您将局部变量放入MSIL中。它使代码更易于阅读和维护(需要跟踪的变量更少,等等)
应该没有安全问题,因为它在内部创建的是本地范围的成员变量
有关更多信息,请参阅。如果您没有对变量执行任何操作,只需设置并读取它们,那么为什么要添加额外的代码来创建私有变量并执行完整的setter和getter呢 C#将创建私有变量,因此字节码仍然正确,但对于在那里阅读程序的任何人来说,更容易理解发生了什么 任何时候你都可以让代码更容易阅读,即使编译器中有语法糖,这也是一个胜利 但是,如果您必须执行任何操作,例如检查属性是否在某个范围内,那么在C#3中,您仍然需要自己写出所有其他内容
最好的做法是按照问题中的方式编写。如果没有对变量执行任何操作,只需设置并读取变量,那么为什么要添加额外的代码来创建私有变量并执行完整的setter和getter呢 C#将创建私有变量,因此字节码仍然正确,但对于在那里阅读程序的任何人来说,更容易理解发生了什么 任何时候你都可以让代码更容易阅读,即使编译器中有语法糖,这也是一个胜利 但是,如果您必须执行任何操作,例如检查属性是否在某个范围内,那么在C#3中,您仍然需要自己写出所有其他内容
最好的做法是按照问题中的内容来写。很好,非常感谢Bob。MS Doc链接正是我想要的:)目前正在编写一份报告/评论,我需要源代码来记录此内容。非常感谢Bob。微软文档链接正是我想要的:)目前正在写一份报告/评论,我需要来源来记录这一点。