Unity中.NET Framework下解决List命名空间歧义引用的方法
解决List类型引用歧义的方案
正确使用using别名
你之前写的using List = System.Collections.Generic;是错误的,因为别名指向的是命名空间而非具体类型。正确的写法是直接将List别名指向System的泛型List类型:using List = System.Collections.Generic.List;这样在代码里直接写
List<string>就会默认指向System.Collections.Generic.List<string>,不会再和Zenject的List产生歧义。全局using(适用于支持C# 10及以上的.NET版本)
如果你的项目使用的是支持C# 10的.NET版本,可以在项目根目录添加一个GlobalUsings.cs文件,写入全局别名:global using List = System.Collections.Generic.List;这样所有代码文件都会自动应用这个别名,无需每个文件单独写using。
排除Zenject的List类型(进阶方案)
如果你完全不需要Zenject的List,可以通过条件编译来避免引入该类型:#define EXCLUDE_ZENJECT_LIST #if !EXCLUDE_ZENJECT_LIST using Zenject; #endif不过这种方法不如别名方案直接,仅适用于确定永远不会用到Zenject的List的场景。
内容的提问来源于stack exchange,提问作者Izhar Mishli
相关产品推荐
相关产品推荐

