技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

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# 标识符或以逗号分隔的标识符组合,除此之外还要符合一些特定要求。

  1. 不能将任何访问说明符(如privatepublic等)与命名空间声明一起使用,C# 中的命名空间隐式具有公共访问权限,这是不可修改的。
  2. 命名空间元素不能显式声明为私有(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#中如何声明和访问命名空间,以及一些要注意的问题。

相关文章

标签: CSharp  命名空间  asp.net  
x
  • 站长推荐
/* 左侧显示文章内容目录 */