是否有隐藏的“使用”添加到 C# 类中
本文关键字:添加 类中 使用 隐藏 是否 | 更新日期: 2023-09-27 18:37:17
我的应用程序中有一个 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 时,它说我在这个类中根本不需要"using"语句;所以,我把它们都删除了,瞧!它真的什么都不需要。
"enum"必须在某处声明 - 如果没有对该程序集或命名空间的引用,它怎么能生存?如果每堂课都有"烘焙"的东西,那是什么?
"enum"必须在某处声明 - 如果没有对该程序集或命名空间的引用,它怎么能生存?如果每堂课都有"烘焙"的东西,那是什么?
"enum"是一个 C# 语言关键字。 它不是需要解析的框架类型,因为它是语言本身的一部分。
请注意,还有许多其他语言关键字是这种方式的。 例如,您可以使用int
而不使用 using 子句来表示using System;
,因为它作为System.Int32
的别名"烘焙"到语言中 - 但你不能使用 Int32
,因为这System.Int32
。
程序开始时,你永远不需要任何using
语句;它们的整个存在都是为了方便。
您始终可以对内联的每个类型使用完全限定的名称,这将被解析。
System.Console.WriteLine(System.String.Empty);
上面的代码片段编译得很好,没有任何using
块。 添加using System;
的唯一优点是它可以将上面的代码缩短为:
Console.WriteLine(String.Empty);
现在,考虑到某些命名空间的类型通常在给定代码文件中使用的次数,这往往是一个重大改进,因此很少使用完全限定的名称。
类型别名(整数、字符串、双精度、日期时间等)映射到它们所表示的完全限定名称,而不仅仅是非限定名称,因此不依赖于using System
。
请务必注意,C# "烘焙"类型(如 int 和 string)只是 .NET 类型 System.Int32 和 System.String 的别名。
如果您使用 int 或字符串,则不需要使用 System。
如果您尝试决定使用哪个(.NET 类型或 C# 别名),以下 SO 问题可能会有所帮助:
C#、int 还是 Int32?我应该关心吗?