C#声明命名空间不能犯的错误,三种访问命名空间成员的方法
作者:admin 时间:2023-4-27 17:43:40 浏览:在 C# 中,命名空间用于在逻辑上安排类、结构、接口、枚举和委托。C# 中的命名空间可以嵌套,这意味着一个命名空间也可以包含其他命名空间。.NET 框架已经包含许多标准命名空间,如 System、System.Net、System.IO 等。除了这些标准命名空间之外,用户还可以定义自己的命名空间。
声明命名空间
C#语言提供了关键字命名空间来创建用户自定义的命名空间,声明命名空间的一般形式如下。
namespace <namespace_name>
{
//类、结构、枚举等
}
其中 namespace 是必需的关键字,命名空间的名称可以是任何有效的 C# 标识符或以逗号分隔的标识符组合。
例如:
using System;
namespace Rajesh.Csharp.Codes
{
class MyClass
{
public MyClass()
{
Console.WriteLine("My Class");
}
}
class MyClient
{
public static void Main()
{
MyClass mc = new MyClass();// 显示 'My Class'
}
}
}
声明命名空间不能犯的错误
首先,命名空间的名称可以是任何有效的 C# 标识符或以逗号分隔的标识符组合,除此之外还要符合一些特定要求。
- 不能将任何访问说明符(如private、public等)与命名空间声明一起使用,C# 中的命名空间隐式具有公共访问权限,这是不可修改的。
- 命名空间元素不能显式声明为私有(private)或受保护(protected),命名空间只允许公共(public)和内部元素作为它的成员,默认是内部的。
以下代码无法在 C# 中编译,因为命名空间内的类被声明为私有(private)的。
namespace Rajesh.Csharp.Codes
{
private class MyClass
{
}
}
三种方法访问命名空间成员
1、使用完全限定名称
可以使用完全限定名称访问命名空间成员,其中包括命名空间名称和来自命名空间外部的以点(.
)分隔的成员名称。
例如
using System;
namespace Rajesh.Csharp.Codes
{
class MyClass
{
public MyClass()
{
Console.WriteLine("My Class");
}
}
}
class MyClient
{
public static void Main()
{
//使用完全限定名称访问命名空间成员
Rajesh.Csharp.Codes.MyClass mc = new Rajesh.Csharp.Codes.MyClass();
}
}
2、使用关键字using
但为了避免开发人员每次都输入完全限定名称,C# 提供了另一个关键字,用于为命名空间定义一些别名。然后在编写我们的代码时,我们只用它们的类名来引用类。在编译期间,编译器将映射所有带有别名的类名以达到类的完全限定名。找到完全限定名称后,它用于将代码转换为 IL 代码。请记住,在 IL 代码中,所有类、接口、枚举和委托都使用它们的完全限定名称进行引用。
使用示例如下所示。
using Rajesh.Csharp.Codes;
MyClass mc = new MyClass();
请记住,在 C# 命名空间内,可以使用关键字 using。
namespace MyNameSpace
{
using System;
class MyClass
{
}
}
命名空间 MyNameSpace 中包含的任何代码都可以访问 System 命名空间而无需完全限定类型名称,但这些类型不是 MyNameSpace 命名空间的成员。
同一个命名空间可以跨越多行,如下所示。
using System;
namespace Rajesh.Csharp.Codes
{
class MyClass
{
public MyClass()
{
Console.WriteLine("My Class");
}
}
}
namespace Rajesh.Csharp.Codes
{
class MyClient
{
public static void Main()
{
MyClass mc = new MyClass();
}
}
}
3、使用别名
在关键字 using 的帮助下,可以为命名空间或类型创建别名。
例如
using con = System.Console; // 创建别名
class MyClient
{
public static void Main()
{
con.WriteLine("Hey rajesh! how you");
}
}
嵌套命名空间
在 C# 中,命名空间可以相互嵌套,如下所示。
using System;
namespace Outer
{
namespace Inner
{
class MyClass
{
public MyClass()
{
Console.WriteLine("My Class");
}
}
}
}
class MyClient
{
public static void Main()
{
Outer.Inner.MyClass mc = new Outer.Inner.MyClass();
}
}
.NET 中的标准命名空间
以下是 .NET Framework 中的一些标准命名空间。
- System:包含实现基本功能的类,如数学运算、数据转换等。
- System.IO:包含用于文件 I/O 操作的类。
- System.Net:包含围绕底层网络协议的类包装器。
- System.Collections:包含实现对象集合的类,例如列表、哈希表等。
- System.Data:包含构成 ADO.NET 数据访问体系结构的类。
- System,Drawing:包含实现 GUI 功能的类。
- System.Threading:包含用于多线程编程的类。
- System.Web:实现HTTP协议访问网页的类。
- System.Xml:用于处理 XML 数据的类。
这些是 .NET 框架的一些重要命名空间。请记住,上面的列表并不完整。
总结
本文介绍了在C#中如何声明和访问命名空间,以及一些要注意的问题。
相关文章
- 站长推荐