技術頻道導航
HTML/CSS
.NET技術
IIS技術
PHP技術
Js/JQuery
Photoshop
Fireworks
服務器技術
操作系統(tǒng)
網(wǎng)站運營

贊助商

分類目錄

贊助商

最新文章

搜索

C#聲明命名空間不能犯的錯誤,三種訪問命名空間成員的方法

作者:admin    時間:2023-4-27 17:43:40    瀏覽:

在 C# 中,命名空間用于在邏輯上安排類、結構、接口、枚舉和委托。C# 中的命名空間可以嵌套,這意味著一個命名空間也可以包含其他命名空間。.NET 框架已經(jīng)包含許多標準命名空間,如 System、System.Net、System.IO 等。除了這些標準命名空間之外,用戶還可以定義自己的命名空間。

聲明命名空間

C#語言提供了關鍵字命名空間來創(chuàng)建用戶自定義的命名空間,聲明命名空間的一般形式如下。

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. 不能將任何訪問說明符(如private、public等)與命名空間聲明一起使用,C# 中的命名空間隱式具有公共訪問權限,這是不可修改的。
  2. 命名空間元素不能顯式聲明為私有(private)或受保護(protected),命名空間只允許公共(public)和內(nèi)部元素作為它的成員,默認是內(nèi)部的。

以下代碼無法在 C# 中編譯,因為命名空間內(nèi)的類被聲明為私有(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

但為了避免開發(fā)人員每次都輸入完全限定名稱,C# 提供了另一個關鍵字,用于為命名空間定義一些別名。然后在編寫我們的代碼時,我們只用它們的類名來引用類。在編譯期間,編譯器將映射所有帶有別名的類名以達到類的完全限定名。找到完全限定名稱后,它用于將代碼轉(zhuǎn)換為 IL 代碼。請記住,在 IL 代碼中,所有類、接口、枚舉和委托都使用它們的完全限定名稱進行引用。

使用示例如下所示。

using Rajesh.Csharp.Codes;

MyClass mc = new MyClass();

請記住,在 C# 命名空間內(nèi),可以使用關鍵字 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 的幫助下,可以為命名空間或類型創(chuàng)建別名。

例如

using con = System.Console; // 創(chuàng)建別名

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:包含實現(xiàn)基本功能的類,如數(shù)學運算、數(shù)據(jù)轉(zhuǎn)換等。
  • System.IO:包含用于文件 I/O 操作的類。
  • System.Net:包含圍繞底層網(wǎng)絡協(xié)議的類包裝器。
  • System.Collections:包含實現(xiàn)對象集合的類,例如列表、哈希表等。
  • System.Data:包含構成 ADO.NET 數(shù)據(jù)訪問體系結構的類。
  • System,Drawing:包含實現(xiàn) GUI 功能的類。
  • System.Threading:包含用于多線程編程的類。
  • System.Web:實現(xiàn)HTTP協(xié)議訪問網(wǎng)頁的類。
  • System.Xml:用于處理 XML 數(shù)據(jù)的類。

這些是 .NET 框架的一些重要命名空間。請記住,上面的列表并不完整。

總結

本文介紹了在C#中如何聲明和訪問命名空間,以及一些要注意的問題。

相關文章

標簽: CSharp  命名空間  asp.net  
x
  • 站長推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */