我正在使用名为Dictionary<MyProperty, string>
的词典在我的所有源代码中使用。
我想将名称更改为更短的名称,具有相同的效果,
因为Dictionary<MyProperty, string>
有点太长了。
Dictionary<MyProperty, string> mydic = new Dictionary<MyProperty, string>();
到
MyDic mydic = new MyDic();
我想和它一样使用它,比如
mydic[myProperty] = "somestring";
我如何实现这一目标?
我试过
public class MyDic : Dictionary<MyProperty, string>
{
}
但它不起作用,或者我应该添加一些东西?
答案 0 :(得分:3)
您可以在C#中使用类型别名。如果可能的话,还可以考虑使用var
而不是全名
using MyDic = System.Collections.Generic.Dictionary<MyProperty, string>;
稍后实例化一个像
这样的变量MyDic mydic = new MyDic(); // or var mydic = new MyDic()
您可以阅读更多here
您也可以使用继承来重命名类型,就像您之前所做的那样
public class MyDic : Dictionary<MyProperty, string> { }
使用继承进行别名会导致需要重新定义相关构造函数的问题。由于在任何地方这样做很快就会变得不合理,为了保持一致性,最好避免它。
最后。请不要这样做。当人们看到这段代码时
var MyDic = new Dictionary<MyProperty, string>;
他们立即明白这是string
的字典,其中MyProperty
为关键字。
但是当他们看到:
var MyDic = new MyDic();
他们必须去找出MyDic
是什么!一个程序员节省打字很可能是下一个程序员的维护噩梦,编写可读代码是一个好主意。
答案 1 :(得分:2)
它对我有用 我刚刚测试了 你是什么意思不起作用?
TestCast tc3 = new TestCast(5757);
MyDic myDic = new MyDic();
myDic.Add(tc3, "string");
myDic[tc3] = "string2";
public class MyDic : Dictionary<MyProperty, string>
{
}
除非你要改写,否则只需使用
Dictionary<MyProperty, string> mydic = new Dictionary<MyProperty, string>();
所以几次按键。它只是一行而且非常自我解释。