private Dictionary<
int, OrderFromInfo> froms =
new Dictionary<
int, OrderFromInfo>();
/// <summary>
/// 来源信息
/// </summary>
[XmlIgnore]
public Dictionary<
int, OrderFromInfo> Froms

{

get {
return froms; }

set { froms = value; }

}
/// <summary>
/// 迎合序列化需要,等同Coupons属性
/// </summary>
public OrderFromInfo[] TheFroms

{

get

{

List<OrderFromInfo> theItemss =
new List<OrderFromInfo>();
if ( froms !=
null )

{
foreach ( KeyValuePair<
int, OrderFromInfo> kvp
in froms )

{

theItemss.Add( kvp.Value );

}

}
return theItemss.ToArray();

}

set

{

froms =
new Dictionary<
int, OrderFromInfo>();
foreach ( OrderFromInfo item
in value )

{

froms.Add( item.Rftype, item );

}

}

}
两者的思想是一样的,都是为了解决字典(C#)或者Map(java)
对象序列化后取不到值所做的变通方法。
java中的get,set封装javabean比较好理解,C#的set{froms=value}可以这样来理解,如下:
通俗来讲..get是获取值 set是设置值
比如这句:get { return this._username; }
如果调用这个get方法 就能获得方法return的 this._username(返回的值)
调用方法:Console.Write(对象.UserName);(输出该属性的值)
比如这句:set { this._username = value; }
如果调用这个set方法 就可以重新设置username的值 value就是你新设置的值
调用方法:对象.UserName="新值";(为该属性附新值)
个人理解:
1.在封装数据库字段的时候非常有用,相信大家都这么用。
2.你可以吧UserName当成一个这个类的一个属性,这个属性由字段_username的值确定,也可能不是_username,而是经过_username变化的。你可以在GET、SET中作相应的处理。比如这样:
public string UserName
{
get {
if(string.IsNullOrEmpty(_username))
return ERRORCODE;
return this._username;
}
set {
if(string.IsNullOrEmpty(_username))
this._username = defaultusername;
this._username = value;
}
}