.net中的属性

这篇文章主要是讨论使用属性的必要性

做任何事物的分析时,首先是要先给该事物一个定义,属性:是一种可以像字段一样访问数据的方法,或者更精简地说,属性就是方法。

相比于字段来说,属性有如下的优势:

1.简化代码的编写。当然了,有人说我只用命名一个简单的变量不就可以访问以及赋值了么,的确,但是如果想实现属性所有的功能,比如访问限制,这种情况下可能就得写一些方法代码了。

2.对.net框架更好的支持。对于这一点,开发过silverlight wpf等等数据绑定类的技术的童鞋们肯定知道,属性让开发变得非常有效率,它的绑定机制让前后台的交互更加方便。比如:

textBoxCity.DataBindings.Add("Text",
      address, "City");
3.访问限制。这一点字段很难做到,由于字段本身的限制,要么设置为私有的private,外部不能访问,或者设置为public,所有访问都允许。但是属性完全可以通过不同的访问修饰符来进行访问限制,例如:
public string Name{
private get;
set;
}
4.具有方法的特性。正如上面所说的,属性即方法,只不过它是一种简化后的方法,这样的设计大大简化了我们代码的编写,更重要的是,我们可以在属性里面定义自己的逻辑。比如:通过属性的set访问器,不允许空值
public class Customer   
{  
    private string name;   
    public string Name   
    {  
        get { return name; }   
        set   
        {  
            if (string.IsNullOrEmpty(value))  
                throw new ArgumentException(  
            "Name cannot be blank",  
            "Name");   
            name = value;  
        }   
        // More Elided.  
    }   
}  
我们还可以使用属性来支持多线程对数据的操作

public class Customer   
{  
    private object syncHandle = new object();  
    private string name;   
    public string Name   
    {  
        get   
        {  
            lock (syncHandle)   
            return name;  
        }   
        set   
        {  
            if (string.IsNullOrEmpty(value))   
                throw new ArgumentException(  
            "Name cannot be blank",   
            "Name");  
            lock (syncHandle)   
            name = value;  
        }   
    }   
    // More Elided.  
}  

5.在接口中定义属性,我们知道在接口中我们只能定义方法 事件 无参属性 有参属性(即索引器),不能定义任何实例字段。接口的这种特性也让属性比字段更加高大山啦!

谢谢!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值