我对C#很陌生,并且完全是自学成功的试验和(很多)错误,所以如果这是一个愚蠢的问题,请提前道歉.
到目前为止,在创建类时,我几乎只是公开了每个变量,所以我可以用它们做我想做的事.
在阅读了很多关于为什么这是一个坏主意(不是我完全理解它)之后,我现在倾向于写道:
public string name { get; set; }
Run Code Online (Sandbox Code Playgroud)
而不是我之前使用的:
public string name;
Run Code Online (Sandbox Code Playgroud)
我理解这是简单的简写(我可以看出为什么它对插入断点很有用,并且使用如下公式字符串{get; private set;}.
但是,以下是什么简写:
private double _grip;
public double grip
{
get
{
return _grip;
}
set
{
if (value > 100) { _grip = 100; }
else if (value < 0) { _grip = 0; }
else { _grip = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
每次我想在变量上添加条件时,必须声明一个私有变量似乎有点笨拙.
我想写的是这样的:
public double grip
{
get;
set
{
if (value > 100) { grip = 100; }
else if (value < 0) { grip = 0; }
else { grip = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
一旦get和set最小化,就可以整齐地放在一条线上.然而,这不起作用(虽然我确实得到了我的第一个堆栈溢出错误,这很有趣).
所以 - 上面有一个简短的手?我试图搜索和阅读很多信息,getters并且setters找不到这样做的东西.
不,如果您为自己的某个方法(getter或setter)提供自定义实现,则您的属性不再是自动实现的属性.因此,您需要继续使用此版本:
private double _grip;
public double grip
{
get
{
return _grip;
}
set
{
if (value > 100) { _grip = 100; }
else if (value < 0) { _grip = 0; }
else { _grip = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
332 次 |
| 最近记录: |