现在,我正在使用“字符串”来枚举字符上的设备插槽列表。 我还使用“字符串”来枚举该项目可以配备的类类型。
这使得我获取,删除,生成等所有项目的方法都涉及到两个字符串参数,分别是设备插槽和类类型。
我真正想要的是使用2个类,以便为slot和class_type有2个强类型化的概念。
问题在于字符串是一个密封的类,因此我无法扩展它!
我构想的一个解决方案是使用“ using SlotType = string;”作为别名,但我不知道如何在全球范围内进行这项工作。
如何为类定义全局别名?
答案 0 :(得分:3)
在C#中,您可以使用“ using”创建类型别名。 Because obviously that term needed a 3rd meanings in C#;)但是,“ using指令的范围仅限于它所在的文件。”,因此它不适用于全局。
还有另一个选择-创建一个子类。例如,
public class ListOfIntegers : List<int>{
//Nothing to do here.
}
将为您提供List<int>
的排序别名,该别名适用于ListOfIntegers作为项目参考提供的任何地方。
对于无法扩展的内容:只需封装它即可。
public class TypedString1 {
public value;
}
public class TypedString2 {
public value;
}
但是您可能需要进行设置,以便将字符串重载用于Equality和ToString调用之类的东西。还可以将其隐式转换为字符串,以使其易于使用。