0

最近,在阅读了网上的很多教程后,我注意到一些开发人员在他们的模型类中跳过编写字段而只使用属性,如下所示:

public class MyClass
{
    public string MyProperty { get; private set; }
}

除了编写更少的代码之外,这样做到底有什么好处?虽然我确实意识到 setter 是私有的,但是当您不指定私有字段时是否存在某种安全问题?换句话说:这里的最佳实践是什么?编写没有字段和相关属性的模型类,还是只使用这些没有字段的公共属性?

提前致谢,

4

2 回答 2

5

在 c# 3.0 及更高版本中,编译器会为您将局部变量放入 MSIL 中。它使代码更易于阅读且更易于维护(需要跟踪的变量更少等)。

应该没有安全问题,因为它在内部创建了本地范围的成员变量。

有关详细信息,请参阅Microsoft 的文档

于 2009-11-06T01:49:11.217 回答
1

如果您没有对变量进行任何操作,只是按原样设置并读取它们,那么为什么要添加额外的代码来创建私有变量并执行完整的 setter 和 getter?

C# 将创建私有变量,因此字节码仍然是正确的,但是对于在那里阅读您的程序的任何人来说,都更容易理解发生了什么。

任何时候你都可以让代码更易于阅读,即使编译器中有语法糖,这也是一种胜利。

但是,如果您必须进行任何操作,例如检查属性是否在某个范围内,那么在 C#3 中您仍然需要自己编写其他所有内容。

The best practice is to just write it as you have in the question.

于 2009-11-06T01:56:53.713 回答