public class Owner
{
public Dictionary<string, object> dic = new Dictionary<string, object>();
}
静态+动态版本
强类型有很多好处,可以避免字符串难以记忆、编译时类型检测等各种问题,网上的文章很多,这里不再赘述。
在保留"内存态"的同时,使用"静态强类型属性"作为调用入口,桥接(转发)到内存态属性。
public class Owner
{
public Dictionary<string, object> dic = new Dictionary<string, object>();
public int Id
{
get { return (int)dic["Id"]; }
set { if (!dic.TryAdd("Id", value)) { dic["Id"] = value; } }
}
public string Content
{
get { return (string)dic["Content"]; }
set { if (!dic.TryAdd("Content", value)) { dic["Content"] = value; } }
}
}
public class DependencyObject
{
private Dictionary<string, object> dic = new Dictionary<string, object>();
public object GetValue(string propertyName)
{
return dic[propertyName];
}
public void SetValue(string propertyName, object value)
{
if (!dic.TryAdd(propertyName, value)) { dic[propertyName] = value; }
}
}
public class Owner : DependencyObject
{
public int Id
{
get { return (int)GetValue("Id"); }
set { SetValue("Id", value); }
}
public string Content
{
get { return (string)GetValue("Content"); }
set { SetValue("Content", value); }
}
}
简诉不需要WPF就能理解依赖项属性(后文简称依赖属性)。创建一个Console工程,从零开始演变。本文有误之处希望大家不吝赐教,批评指正。让我们开始吧,一起来重现这个简单而精湛的演变过程!静态编译-强类型版本创建一个Owner类并定义普通属性Owner指代任意实体,例如Button/Shape/Window等等public class Owner{ public int Id { get; set; } public string Content { get; set; }}