![](/img/trans.png)
[英]Should I use properties in my C# programs or should I use get/set accessors?
[英]How should I use Properties in C#?
我不确定因为在Java中getter / setter看起来有点不同但是用什么“c#方式”来编写这些东西?
选项a。)
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private int time;
public int Time
{
get { return time; }
set { time = value; }
}
湾)
private string _name;
private int _time;
public string name
{
get { return _name; }
set { _name = value; }
}
public int time
{
get { return _time; }
set { _time = value; }
}
C。)
public string name {get; set;}
public int time {get; set;}
好的,有一些例子。 什么看起来更好? 我应该首先编写所有私有变量声明然后编写属性,还是应该将我的变量和属性声明组合在一起。
如何遵循.NET命名约定:
public string Name { get; set; }
public int Time { get; set; } // Odd type for time, admittedly...
除非你在其中做一些非常重要的事情,否则不要自己手动编写属性。
如果你手工编写的属性实现,这取决于你如何命名私有变量。 就个人而言我会用:
private string name;
public string Name
{
get { /* whatever */ }
set { /* whatever */ }
}
...但是如果你想使用下划线,那就是你的特权。
至于会员的订购 - 这更是你自己的选择。 假设您正在与团队合作,请与团队交流,了解当地的惯例。
如果您不需要访问底层支持字段,则建议使用自动属性(C)。 但是,根据.NET命名约定,它们应该是PascalCase。
public string Name { get; set; }
public int Time { get; set; }
前两个只是根据公司/开发团队或您自己的决定来命名 。
第三种情况是对同一属性进行decal的简短方法,其中实际field
将由运行时本身生成。
简短优点: 它简短易行 。
简短缺点: 无法在 geter / setter中放置内容,不能在Visual Studio中放置断点 ...
希望这可以帮助。
在您的特定情况下(getter或setter上没有逻辑),最佳选项是C
(对属性名称进行小的更改以遵循C#标准)
public string Name {get; set;}
public int Time {get; set;}
取决于这种情况,当您定义字段时使用下划线字符,如果您只需要一个简单的getter / setter,则无需自己定义字段,因为编译器将在后台为您定义它们。
我会选择,其他大多数已经发布。
public string Name {get; set;}
public int Time {get; set;}
请注意,您可以单独对setter和getter进行更改保护级别,例如
public string Name {get; protected set;}
protected int Time {get; private set;}
您只能使用比应用于孔属性更高的保护。
public string Name {get; set;}
public int Time {get; set;}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.