日期:2014-05-18  浏览次数:20376 次

几个.net疑问用法讨论
1.属性用法
现象:看过部分人项目中很喜欢用属性来“替换变量”。很惭愧到现在我虽然知道属性怎么声明、使用。但一直还是体会不出使用属性用法有何好处?
好处个人感觉有几个.A.可设置变量可修改还是不可修改; B.可设置内部私有变量通过外部进行传值或取值(要求该属性设置访问级别可访问可修改)
大家可看看底下几种用法到底有没有必要,如果这样做有什么好处?
C# code

//属性用法一
public class CustomnerType
{
  private string strCustomerType;
  public string CustomerTypeName
    {
        get
        {
            return strCustomerType;
        }
        set
        {
            strCustomerType= value;
        }

} 

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
           if (!IsPostBack)
        {
            CustomnerType objCustomner= new CustomnerType();
            txtCustomnerType.Text = objCustomner.CustomerTypeName;
        }
        
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        
        CustomnerType objCustomner= new CustomnerType();
        string CustomerTypeName = txtCustomerTypeName;
        objCustomner.CustomerTypeName = CustomerTypeName;


    }
}

//大家说看看这样用法有必要吗?有必要的话,有什么好处



C# code

//属性讨论二,也是让我疑问最大的用法public class SqlAction
{
      private DataSet objSet;
  
}

  public DataTable GetTable    // 提供一个可供利用的数据源
    {
        get
        {
            return objSet.Tables[0];
        }
    }




总结:
个人感觉属性可以带来一定的好处,可怎么老是感觉麻烦,声明一个变量还要写很多个代码。可能我还没真正领悟到属性的必要性。烦大家帮解释下。越详细越好。
另外弱弱问下。大家用属性的时候多不?

------解决方案--------------------
属性确实是方法。

比如
public string MyProp
{
set { if (value.Length < 10) throw new Exception("abc"); }
}


还有就是数据绑定的时候,public变量是不会映射成列名的。

get { 也可以能过判断,如果不满足某种条件就返回某个默认值; }

。。。
------解决方案--------------------
看看这篇,里面讲怎么用字段,怎么用属性
Class Member Usage Guidelines http://msdn.microsoft.com/en-us/library/426s83c3(VS.71).aspx

------解决方案--------------------
用属性很有必要.

对于私有变量.一般都声明为private的就可以了.
暴露属性,我们可以很好的控制他的访问性.

还有就如3楼兄弟所说的.


------解决方案--------------------
用的很多 

表里的字段 在实体类里反映出来的不就是属性吗

属性里有可控制性 对一些字段进行判断,可以设置只读 等等 好处很多


------解决方案--------------------
它们提供灵活的机制来读取、编写或计算私有字段的值。可以像使用公共数据成员一样使用属性,但实际上它们是称为“访问器”的特殊方法。这使得数据在可被轻松访问的同时,仍能提供方法的安全性和灵活性

属性使类能够以一种公开的方法获取和设置值,同时隐藏实现或验证代码。
------解决方案--------------------
当你不是一个人开发,而是一个team开发的时候。你就知道好处了
------解决方案--------------------

------解决方案--------------------
属性的最大好处就是安全性,当你理解oop思想就不会问这个问题了!这也是asp程序和.net程序的区别,最主要的是封装思想!
呵呵,当楼住被注入SQL攻击时就是知道属性的作用了
------解决方案--------------------
变量好比朋友有用的时候拿来用一下,
属性好比自己的爱人,是永久性的。。
哈哈