【发布时间】:2015-04-02 15:13:14
【问题描述】:
无话可说:
public class MemoryDictionary<T>
{
private Dictionary<T, T> items = new Dictionary<T, T>();
public T GetValue<T>(T value)
{
if (!items.ContainsKey(value))
{
items[value] = value;
}
return items[value];
}
}
这里出了什么问题,为什么不能编译?我的意思是,它实际上是在说 ContainsKey 方法有一个无效的参数,但是....这很愚蠢!论据是正确的!
还有什么奇怪的:
public class MemoryDictionary<string>
{
private Dictionary<string, string> items = new Dictionary<string,string>();
public string GetValue<string>(string value)
{
if (!items.ContainsKey(value))
{
items[value] = value;
}
return items[value];
}
}
这段代码和我选择某些特定类型的任何代码都编译得很好......我惊呆了......
【问题讨论】:
-
您得到的确切编译错误是什么?
-
你说的编译出来的代码里面充满了多个编译器错误……
-
附带说明,只要您认为 C# 语言或某个 .NET 类中存在错误,您几乎可以确定该错误与您对它的使用有关。它是有 bug 的语言或基础库的可能性很小。
标签: c# .net dictionary