字典 我如何在短名称中使用它

本文关键字:T1 T2 字典 | 更新日期: 2023-09-27 18:34:05

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

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

字典<T1, T2> 我如何在短名称中使用它

可以在

C# 中使用类型别名。 如果可能的话,还可以考虑使用 var 而不是全名

using MyDic = System.Collections.Generic.Dictionary<MyProperty, string>;

稍后实例化一个变量,例如

MyDic mydic = new MyDic(); // or var mydic = new MyDic()

您可以在此处阅读更多内容


还可以使用继承来重命名类型,就像以前所做的那样

public class MyDic : Dictionary<MyProperty, string> { }

使用继承来执行别名存在需要重新定义相关构造函数的问题。由于在任何地方都这样做很快就会变得不合理,因此为了保持一致性,最好避免这样做。


最后。请不要这样做。当人们看到此代码时

var MyDic = new Dictionary<MyProperty, string>;

他们立即明白这是一本以MyProperty为键的string词典。

但是当他们看到:

var MyDic = new MyDic();

他们必须去看看MyDic是什么!一个程序员节省打字很可能是下一个程序员的维护噩梦,编写可读的代码是个好主意。

对我
有用我刚刚测试
你的意思是它不起作用?

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

所以几个按键。 这只是一行,不言自明。