我的app中有一个Utils单元,截至目前,只定义了一些枚举,例如:
public enum MostFavoredStates
{
California,
NorthCarolina,
Vermont,
NewMexico
}
public enum LeastFavoredStates
{
NorthDakota,
Illinois,
Nebraska
}
public enum StatesInWhichIHaveResided
{
California,
NewYork,
Montana,
Alaska,
Oklahoma,
Wisconsin,
Idaho,
Missouri
}
当我在我的项目上运行ReSharper时,它说我在这个课程中根本不需要“使用”语句;所以,我把它们全部删除了,瞧!它根本不需要任何东西。
“enum”必须在某处声明 - 如何在没有对该程序集或命名空间的引用的情况下生存?如果每个班级都有“烘焙”的东西,它是什么?
答案 0 :(得分:12)
“enum”必须在某处声明 - 如何在没有对该程序集或命名空间的引用的情况下生存?如果每个班级都有“烘焙”的东西,它是什么?
“enum”是一个C#语言关键字。它不是需要解决的框架类型,因为它是语言本身的一部分。
请注意,还有许多其他语言关键字。例如,您可以int
使用using System;
而不使用System.Int32
的使用条款,因为它已作为Int32
的别名“加入”该语言 - 但您无法使用System.Int32
},因为那是{{1}}。
答案 1 :(得分:2)
在程序开始时,您永远不需要任何using
语句;他们的整个存在是为了方便。
您可以随时为每个内联类型使用完全限定名称,并将对其进行解析。
System.Console.WriteLine(System.String.Empty);
上面的代码段编译得很好,没有任何using
块。添加using System;
的唯一好处是可以将上述代码缩短为:
Console.WriteLine(String.Empty);
现在,考虑到给定代码文件中通常使用某些名称空间的类型的次数,这往往是一个重大改进,因此很少使用完全限定名称。
类型别名(int,string,double,datetime等)映射到它们所代表的完全限定名称,而不仅仅是非限定名称,因此不依赖using System
。
答案 2 :(得分:0)
重要的是要注意C#“烘焙”类型(如int和string)只是.NET类型System.Int32和System.String的别名。
如果使用int或string,则不需要使用系统。
如果您正在尝试决定使用哪个(.NET类型或C#别名),以下SO问题可能有所帮助: