几个.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开发的时候。你就知道好处了
------解决方案--------------------
如需要阅读该回复,请登录或注册CSDN!
------解决方案--------------------属性的最大好处就是安全性,当你理解oop思想就不会问这个问题了!这也是asp程序和.net程序的区别,最主要的是封装思想!
呵呵,当楼住被注入SQL攻击时就是知道属性的作用了
------解决方案--------------------变量好比朋友有用的时候拿来用一下,
属性好比自己的爱人,是永久性的。。
哈哈