1

现在,我正在使用“字符串”来枚举角色上的设备插槽列表。我还使用“字符串”来枚举可以装备该项目的类类型。

这使得我获取、删除、生成等项目的所有方法都涉及具有两个字符串参数,即设备插槽和类类型。

我真正想要的是使用 2 个类,以便我有 2 个用于插槽和 class_type 的强类型概念。

问题是字符串是一个密封的类,因此我不能扩展它!

我设想的一个解决方案是使用“使用 SlotType = string;” 作为别名,但我不知道如何在全球范围内进行这项工作。

你如何为一个类定义一个全局别名?

4

1 回答 1

3

在 C# 中,您可以使用“使用”创建类型别名。因为显然该术语在 C# 中需要第三种含义;)但是“使用指令的范围仅限于它出现的文件。”,因此它不会全局适用。

还有另一种选择——创建一个子类。例如,

public class ListOfIntegers : List<int>{
  //Nothing to do here.
}

会给你一个排序别名,因为List<int>它适用于 ListOfIntegers 作为项目参考给出的任何地方。

至于不能扩展的东西:只是封装它。

public class TypedString1 {
  public value;
}

public class TypedString2 {
  public value;
}

但是您可能希望对其进行设置,以便将字符串重载用于 Equality 和 ToString 调用等内容。还可以隐式转换为字符串以使其更易于使用。

于 2019-08-03T20:17:18.233 回答