【发布时间】:2015-11-24 20:00:45
【问题描述】:
我有以下父类:
public class BaseType
{
public abstract Dictionary<string, object> dict { get; set; }
}
儿童班:
public override Dictionary<string, object> dict
{
get
{
return fn();
}
set
{
//set dictionary[key]=value }
}
fn 在子类中实现为:
public static Dictionary<string, object> fn()
{
Dictionary<string, object> dictionary = new Dictionary<string, object>();
dictionary.Add("key1", "0");
dictionary.Add("key2", "something");
return dictionary;
}
我需要访问这个dictionary,如下:
BaseType test=new Child();
test.dict["key1"]=1;//set property
object strGet= test.dict["key2];//get property
如何实现上面的get和set?
【问题讨论】:
-
请编写有效的 c# 代码。在你的基类中是那个属性吗?或方法?为什么要抽象?
-
test.dict["key1"]仍然使用属性dict的get部分。你似乎根本没有使用set。然而,get { return fn(); }总是返回一个 new 实例!所以对于test.dict["key1"] = 1; object obj = test.dict["key1"],obj将是"0",因为将"key1"的值设置为1的字典丢失了。 -
@pika 当你删除你的答案时我再次在这里发表我的评论:我仍然建议你澄清你的问题,因为从你的答案看来,你的意思与他们的来历不同结束你的问题。