c# - 如何在 Unity 中全局为类创建别名?

标签 c# unity3d

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

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

我真正想要的是使用 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/

相关文章:

c# - 将列表中的多个元素添加到数组

unity3d - 使用 [ Arduino + 蓝牙模块 (HC-05) ] 或 ESP32 连接 Unity 游戏

c# - 使用切换按钮停止协程

animation - 如何在 Unity3D 中编辑动画

multithreading - Unity : How to use all CPU cores for Camera. 使用多线程图形作业渲染?优化 - 不起作用?

c# - 在 C# 中反序列化嵌套的 xml(Unity 脚本)

c# - 在静态类 C# ASP.NET Web 窗体中调用静态方法

c# - 添加对 Office 库的引用失败 : type or namespace name Word not found

c# - 确保只有一个公式可以应用于 4 个随机元素

c# - 事务化时 CommandText 属性未正确初始化错误