字典<t1,t2 =“”>如何以短名称使用它?</t1,>

时间:2014-12-13 14:10:24

标签: c# .net dictionary

我正在使用名为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>
{
}

但它不起作用,或者我应该添加一些东西?

2 个答案:

答案 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>();

所以几次按键。它只是一行而且非常自我解释。