C#面向對象--命名空間

来源:https://www.cnblogs.com/minotauros/archive/2019/11/30/11963027.html
-Advertisement-
Play Games

一、在C#中,使用命名空間(Namespace)可以幫助控制自定義類型的作用範圍,同時對大量的類型進行組織;使用namespace關鍵字聲明命名空間,命名空間可以嵌套使用: namespace MyNameSpace { namespace MyNestedNameSpace { class MyC ...


  一、在C#中,使用命名空間(Namespace)可以幫助控制自定義類型的作用範圍,同時對大量的類型進行組織;使用namespace關鍵字聲明命名空間,命名空間可以嵌套使用:

namespace MyNameSpace
{
    namespace MyNestedNameSpace
    {
        class MyClass
        {
            public void MyFunc()
            {
                //do...
            }
        }
    }
}

  1.命名空間預設即為public,沒有任何訪問限制,不能使用任何訪問修飾符;

  2.在命名空間中的定義的五種基本類型(類class、結構struct、介面interface、枚舉enum和委托delegate),只能是public或internal的,預設為internal的;

  3.每一種類型根據其命名空間的不同會擁有一個唯一名稱,即完全限定名稱(Fully Qualified Name),例如上面自定義類型MyClass的完全限定名稱為MyNameSpace.MyNestedNameSpace.MyClass;

  ※完全限定名稱才是CLR看到的實際類型名稱;

  二、使用using關鍵字引用指定的命名空間,這樣可在當前代碼範圍內免去為每個類型指定命名空間的名稱,通過.運算符分隔嵌套的命名空間:

using MyNameSpace.MyNestedNameSpace;

  ※此時,可以直接在代碼中訪問MyNameSpace.MyNestedNameSpace命名空間中的MyClass類:

MyClass myClass = new MyClass();
myClass.MyFunc();

  三、使用using關鍵字還可以創建命名空間或類的別名(Alias Directive),從而在需要明確指定命名空間或類型的名稱時簡化代碼:

  1.命名空間別名:

using My = MyNameSpace.MyNestedNameSpace;

  ※此時,可以通過My.MyClass訪問MyNameSpace.MyNestedNameSpace命名空間中的MyClass類:

My.MyClass myClass = new My.MyClass();
myClass.MyFunc();

  ※對於命名空間別名在使用時,更好的方式是使用::運算符代替.運算符,以此避免在使用時將其理解為類型並可以防止意外引入與別名同名的類型:My::MyClass()

  2.類型別名:

using My = MyNameSpace.MyNestedNameSpace.MyClass;

  ※此時,可以直接通過別名My代替MyNameSpace.MyNestedNameSpace命名空間中的MyClass類:

My myClass = new My();
myClass.MyFunc();

  3.全局命名空間限定符global關鍵字與::運算符一起使用時,始終引用的是頂級根命名空間(.Net)中的類型,例如:

global::System.Collections.Generic.List<int>

 


如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的認可是我寫作的最大動力!

作者:Minotauros
出處:https://www.cnblogs.com/minotauros/

本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 數據結構式通過某種方式(例如對元素進行編號)組織在一起的數據元素的集合,這些數據元素可以是數字或者字元,甚至可以是其他數據結構。在Python中,最基本的數據結構是序列(sequence)。序列中的每個元素被分配一個序號 即元素的位置,也稱為索引。第一個元素索引是0,第二個則是1,一次類推。 Pyt ...
  • ArrayList實現原理(JDK1.8) ArrayList 繼承於AbstractList,實現了List介面,其實AbstractList 已經實現過List介面,這裡重覆實現使得介面功能更加清晰,JDK中很多類都是如此。 其中Cloneable介面是克隆標記介面,Serializable序列 ...
  • https://blog.csdn.net/wang839305939/article/details/78713124/ ...
  • 1.當前日期格式化: time.strftime('%Y-%m-%d',time.localtime(time.time())) 例子:輸出當前日期: import timeprint(time.strftime('%Y-%m-%d',time.localtime(time.time()))) 2. ...
  • WinForm界面使用IrisSkin,可以說做到了一鍵美化,當然美化的效果仁者見仁智者見智,可以挑選自己喜歡的。 1、IrisSkin下載地址:http://www.pc6.com/softview/SoftView_70918.html#download 2、將下載的文件放到Debug下麵。 3 ...
  • 在同一個地方摔倒兩次之後,決定記錄下來這個東西。 問題 在同一個地方摔倒兩次之後,決定記錄下來這個東西。 問題 1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YA ...
  • 第二篇隨筆 9102年11月底,工科男曹**要算一個方程f(x)=0的根,其中f(x)表達式為: 因為實數範圍內f(x)=0的根太多,所以本文只研究-2<x<2的情況.這個式子長的太醜了,曹**看著覺得不爽,導之,得一f'(x) 這個式子更醜,但是,我們有牛頓迭代法,可以構造迭代序列{xn}滿足: ...
  • [TOC] Aso.Net Core 的配置系統Configuration ​ 1.以前的配置文件格式為XML ​ 2.新版的配置文件格式支持 { json ,xml, ini, memory, command, env..... } 01.Json文件的弱類型方式讀取 1. Json文件 【Mic ...
一周排行
    -Advertisement-
    Play Games
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...