我对C#非常陌生,我完全自学过尝试和(很多)错误,所以如果这是个愚蠢的问题,请提前道歉。
到目前为止,在创建类时,我已经把每个变量都公开了,这样我就可以用它们做我想做的事情了。
在阅读了很多关于为什么这是一个坏主意(不是我完全理解它)之后,我现在倾向于写:
public string name { get; set; }而不是我以前用过的:
public string name;当它如此简单时,我理解它的速记(我可以理解为什么它对插入断点和使用诸如:公共字符串名称{ get;私有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; }
}
}每次我想在变量上添加条件时,不得不声明一个私有变量似乎有点笨拙。
我想写的是这样的东西:
public double grip
{
get;
set
{
if (value > 100) { grip = 100; }
else if (value < 0) { grip = 0; }
else { grip = value; }
}
}一旦get和set最小化,就把它整齐地放在一行上。但是,这不起作用(虽然我确实得到了我的第一个堆栈溢出错误,这很有趣)。
所以-上面有短手吗?我试着在getters和setters上搜索和阅读了很多信息,却找不到这样的东西。
发布于 2014-04-02 00:19:33
不,如果您为某个方法(getter或setter)提供了自定义实现,则您的属性不再是自动实现的property.So,您需要继续使用此版本:
private double _grip;
public double grip
{
get
{
return _grip;
}
set
{
if (value > 100) { _grip = 100; }
else if (value < 0) { _grip = 0; }
else { _grip = value; }
}
}https://stackoverflow.com/questions/22799315
复制相似问题