我们是否应该拒绝这样的“属性”??

大家都知道,在c#中有属性(Property),可是大家对属性的理解都是怎么样的呢?在这里发表一些我对属性的看法。
首先这样一段代码:
代码1:
class PropertyExmaple
    
{
            
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;
                }

            }

        }

    }

        这样我们在属性的set属性中就对输入的值进行了有效性验证,如果用户用户输入的值超过8个字符就会弹出提示对话框,并且不会对变量strProp进行赋值,从而控制了赋值的有效性!
       在这里我想强调一点,很多朋友虽然都知道属性的用法,可是并没有真正理解属性的用处,看看你的代码里是否类似代码1中的代码…………(头一次写文章,如有不足之处,请大家多指正,批评!我仅仅是一名c#爱好者,希望在这里与大家分享编程带给我们的快乐!

posted on 2008-03-08 17:16  PPK  阅读(237)  评论(2编辑  收藏  举报

导航