现在,我正在使用“字符串”来枚举角色上的设备槽列表。 我还使用“字符串”来枚举该项目可以装备的类类型。
这使得我获取、删除、生成等项目的所有方法都涉及两个字符串参数,即设备槽和类类型。
我真正想要的是使用 2 个类,以便我有 2 个强类型概念用于槽和 class_type。
问题是字符串是一个密封类,因此我不能扩展它!
我设想的一个解决方案是使用“using SlotType = string;”作为别名,但我不知道如何在全局范围内开展这项工作。
如何为类定义全局别名?
最佳答案
在 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 调用等内容。也可能隐式转换为字符串以使其更易于使用。
关于c# - 如何在 Unity 中全局为类创建别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57341751/