我们是否应该拒绝这样的“属性”??
大家都知道,在c#中有属性(Property),可是大家对属性的理解都是怎么样的呢?在这里发表一些我对属性的看法。
首先这样一段代码:
代码1: class PropertyExmaple
class PropertyExmaple 
 {
    {
 private string strProp;
            private string strProp;

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