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

怎么样让 class1["name"] = "王" 等效于 class1.name ="王"
怎么样让 class1["name"] = "王" 等效于 class1.name ="王"

就是本来是这样写class1.name ="王"
但是函数需要class1["name"] = "王" 这种写法 
怎么样实现,是不是在类或属性的上面加类似于[Serializable] 这样的东西

------解决方案--------------------
实现索引器:

C# code
class class1
{
    public string Name { get; set; }
    public string Address { get; set; }

    public string this[string propertyname]
    {
        //当然更好的写法是反射
        get {
            if (propertyname == "name") return Name;
            if (propertyname == "address") return Address;
            return "";
        }
        set {
            if (propertyname == "name") Name = value;
            if (propertyname == "address") Address = value;
        }
    }
}