Dictionary初始化问题

zation1 2010-08-06 02:54:09
我按照MSDN的例子进行Dictionary的初始化(http://msdn.microsoft.com/zh-cn/library/bb531208.aspx#CommunityContent)
但是会报错:CS1002: 应输入 ;
下面是我的代码,请大家帮我看看,谢谢!

public class Struct
{
/// <summary>
/// 性别:0-男;1-女
/// </summary>
public Dictionary<string, string> Sex = new Dictionary<string, string>()
{
{"0","男"},
{"1","女"}
};
}
...全文
1790 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-08-06
  • 打赏
  • 举报
回复
诶。事实证明那的确不是.net框架提供的,什么和框架有关呢?你运行的时候,需要.net clr运行时才能解析的功能,这才与框架有关,比如泛型,这是2.0支持,1.1不支持的,动态类型,这是4.0支持,2.0,3.5不支持的。

自动属性、自动赋值构造。都是编译器支持的。又一群人被误导了…
兔子-顾问 2010-08-06
  • 打赏
  • 举报
回复
这样写没问题。效率没影响。
zation1 2010-08-06
  • 打赏
  • 举报
回复
想了个替代的方法,就是效率可能有些低


public class Struct
{
private static Dictionary<string, string> _Sex;

/// <summary>
/// 性别:0-男;1-女
/// </summary>
public static Dictionary<string, string> Sex
{
get
{
if (_Sex == null)
{
Dictionary<string, string> result = new Dictionary<string, string>();
result.Add("0", "男");
result.Add("1", "女");
_Sex = result;
}
return _Sex;
}
}
}
guohelv0519 2010-08-06
  • 打赏
  • 举报
回复
不用初始化,新建对象后直接添加元素就是。
zation1 2010-08-06
  • 打赏
  • 举报
回复
哎,看来只能用个GET方法,在里面判断如果为空的话ADD了?
wuyq11 2010-08-06
  • 打赏
  • 举报
回复
2.0不支持这种属性
dictionary.Add("", "");
zation1 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyazhe 的回复:]

vs2005不支持。
但这种简化写法和.net框架无关。用2008编译.net 2.0程序可以这样写。编译器识别的。2008及以上版本支持的写法。
[/Quote]

刚才去看了我的VS,版本就是2008的。。。看来还是要跟.NET框架的版本相关啊

有没有朋友知道怎样才能在.NET2.0框架下进行这种类似的初始化?
PSSonyXbox 2010-08-06
  • 打赏
  • 举报
回复
VS2005也可以
有个前提条件就是你要安装 .net framewrok3.5的类库,添加引用
哈哈,,,
zation1 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyazhe 的回复:]

vs2005不支持。
但这种简化写法和.net框架无关。用2008编译.net 2.0程序可以这样写。编译器识别的。2008及以上版本支持的写法。
[/Quote]

谢谢你的说明,那么有没有办法在2005中进行这种初始化操作呢?
兔子-顾问 2010-08-06
  • 打赏
  • 举报
回复
vs2005不支持。
但这种简化写法和.net框架无关。用2008编译.net 2.0程序可以这样写。编译器识别的。2008及以上版本支持的写法。
Peter200694013 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zation1 的回复:]
对了,我的环境是在.NET 2.0下面,这个会不会有影响,MSDN上写的环境是3.5
[/Quote]

我的是3.5,没有问题

2.0没用过...
happyer_longlong 2010-08-06
  • 打赏
  • 举报
回复
没错啊
Peter200694013 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q107770540 的回复:]
去掉第二个public
[/Quote]

不做任何更改,在我电脑上可以啊...
zation1 2010-08-06
  • 打赏
  • 举报
回复
对了,我的环境是在.NET 2.0下面,这个会不会有影响,MSDN上写的环境是3.5
Peter200694013 2010-08-06
  • 打赏
  • 举报
回复
试过了,没错...

把所有代码贴下
q107770540 2010-08-06
  • 打赏
  • 举报
回复
去掉第二个public

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧