我们是否应该拒绝这样的“属性”??
大家都知道,在c#中有属性(Property),可是大家对属性的理解都是怎么样的呢?在这里发表一些我对属性的看法。
首先这样一段代码:
代码1:
这样我们在属性的set属性中就对输入的值进行了有效性验证,如果用户用户输入的值超过8个字符就会弹出提示对话框,并且不会对变量strProp进行赋值,从而控制了赋值的有效性!
在这里我想强调一点,很多朋友虽然都知道属性的用法,可是并没有真正理解属性的用处,看看你的代码里是否类似代码1中的代码…………(头一次写文章,如有不足之处,请大家多指正,批评!我仅仅是一名c#爱好者,希望在这里与大家分享编程带给我们的快乐!)
首先这样一段代码:
代码1:
class PropertyExmaple
{
private string strProp;
public string Prop
{
get { return strProp; }
set { strProp = value; }
}
}
{
private string strProp;
public string Prop
{
get { return strProp; }
set { strProp = value; }
}
}
在上边代码中,定义了一个 Prop的属性,并分别设置了get与set accessor 属性,这样就可以对这个属性进行,读取与赋值操作。此时在使用该属性时与public的变量在使用上并无区别,那我们为什么要用属性,而不直接使用public string strProp呢?下边在看这样一段代码:
代码2:
class PropertyExample
{
private string strProp;
public string Prop
{
get
{
return strProp;
}
set
{
if (value.Length > 8)
{
MessageBox.Show("超出输入范围!");
return;
}
else
{
strProp = value;
}
}
}
}
{
private string strProp;
public string Prop
{
get
{
return strProp;
}
set
{
if (value.Length > 8)
{
MessageBox.Show("超出输入范围!");
return;
}
else
{
strProp = value;
}
}
}
}
这样我们在属性的set属性中就对输入的值进行了有效性验证,如果用户用户输入的值超过8个字符就会弹出提示对话框,并且不会对变量strProp进行赋值,从而控制了赋值的有效性!
在这里我想强调一点,很多朋友虽然都知道属性的用法,可是并没有真正理解属性的用处,看看你的代码里是否类似代码1中的代码…………(头一次写文章,如有不足之处,请大家多指正,批评!我仅仅是一名c#爱好者,希望在这里与大家分享编程带给我们的快乐!)