日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

3.C#基础之基本概念(完成)

發布時間:2024/1/17 C# 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.C#基础之基本概念(完成) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 3.1應用程序啟動

? ? ?應用程序:具有入口點的程序集

? ? ? ?當應用程序運行時,將創建新的應用程序域,同一臺計算機可能會同時運行著同一個應用程序的若干實例,則每個實例都有各自的應用程序域;

? ? ? ?應用程序域通過作為應用程序狀態容器使應用程序得以隔離,應用程序域作為應用程序中和它使用的類庫中所定義的類型的容器和邊界;

? ? ? ?同一個類型若被加載到不同的應用程序域,就成為各自堵路的客體,由它們在各自應用程序域中產生的實例同樣不可直接共享;

? ? ? ?至于如何處理程序域的創建和銷毀,各實現方法可以按具體情況確定自己的策略或機制。

? ? ?應用程序啟動:在執行環境調用指定的方法(稱為程序的入口點)時發生,這個入口點方法總是被命名為Main,可以具有下列簽名之一:

? ? ?入口點也可以選擇是否包含參數,若有則參數類型必須為string[],那時執行環境會創建并傳遞一個包含命令行參數的string[]參數,這些命令行參數是在啟動應用程序時指定的;string[]參數永遠不能為null,若果沒有指定命令行參數,它的長度為零。

? ? ?注:

? ? ?1.C#雖然支持方法重載(方法名一樣,參數不同的方法),但在一個程序內,沒有任何類或結構可以包含一個以上的名為Main的方法,這是因為Main的定義限制它只能用做應用程序的入口,允許使用Main的其他重載版本,前提是它們具有一個以上的參數或唯一參數類型不是string[]。

? ? ?2.應用程序可由多個類或結構組成,在這些類或結構中,可能會有若干個擁有自己的Main方法,這種情況必須利用某種外部機制(如命令行編譯器的選項)來指定哪個Main方法作為入口點。

? ? ?3.在C#中同樣存在訪問性限制,應用程序入口是作為特殊情況存在的,執行環境不管入口什么訪問類型,都可以訪問(就這么強勢)!

? 3.2應用程序終止

? ? ?應用程序終止,將控制權返回給執行環境。

? ? ?剛才知道入口方法的返回類型可以是int,也可以是void;若為int,則返回的值作為應用程序的終止狀態代碼,這個終止狀態代碼是用來允許與執行環境進行關于應用程序狀態(成功或失敗)的通信;若為void,到達終止該方法的"}"或執行不帶表達式的return時,會產生終止狀態代碼0。

? ? ?還有在應用程序終止之前,將調用還沒有被垃圾回收的對象的析構函數,除非這類清理功能被設置為停止使用。

? 3.3聲明

? ? ?C#程序使用聲明定義構成程序的元素。C#程序是用命名空間組織起來的,一個命名空間可以包含類型聲明和嵌套的命名空間聲明

? ? ?類型聲明用于定義類、結構、接口、枚舉和委托,即一個類型聲明中可以使用哪些類型作為成員,取決于該類型聲明的形式;

? ? ?聲明所定義的名稱屬于它自己所屬的那個聲明空間,除非是重載成員,否則存在兩個以上聲明相同名稱的成員會發生編譯錯誤,也不能存在不同類型的同名成員;

? ? ?有若干種不同類型的聲明空間:

? ? ? ?1.在程序的所有源文件中,命名空間成員聲明若沒有至于任何一個命名空間聲明之下,就稱為全局聲明空間;

? ? ? ?2.在程序的所有源文件中,一個命名空間成員聲明在命名空間聲明中具有相同的完全限定的命名空間名稱,就屬于一個組合聲明空間;

? ? ? ?3.基類和類、基接口和接口的聲明空間無關,所以在派生類或接口聲明和繼承成員的聲明同樣時,我們稱是隱藏了繼承成員;

? ? ? ?4.每個枚舉聲明創建一個新的聲明空間,名稱通過枚舉成員聲明引入此聲明空間;

? ? ? ?5.每個塊為局部變量和常量創建一個不同的聲明空間,在嵌套塊中不可能聲明與封閉它的塊中的局部變量同名的局部變量;

? 3.4成員

? ? ?命名空間和類型都具有成員,通常使用限定名來訪問實體的成員,限定名以該實體的引用開頭,后面跟個"."標記,再接成員名稱;

? ? ?類型的成員是該類型中聲明的,也可以從該類型的基類繼承的;除基類的實例構造函數、靜態構造函數和析構函數外,都可以繼承;在派生類或許有不能訪問已經被繼承的成員,原因不是其聲明的可訪問性不讓訪問,就是被自身的聲明隱藏了。

? ?3.4.1命名空間成員

? ? ?命名空間和類型若沒有封閉它的命名空間,則屬于全局命名空間的成員;在某命名空間聲明的命名空間和類型是該命名空間的成員;命名空間沒有訪問限制,命名空間名稱始終是可公開訪問的。

? ?3.4.2結構成員

? ? ?結構的成員是結構組聲明的成員和從object類繼承的成員;簡單類型的成員直接對應于結構類型的成員,此簡單類型正式該結構的化名:

? ?3.4.3枚舉成員

? ? ?枚舉成員是在枚舉中聲明的常數和從System.Enum類繼承的成員。

? ?3.4.4類成員

? ? ?類成員是在類中聲明的成員和從該類的基類(object除外,因為它沒有基類)繼承的成員,還是那句話,除基類的實例構造函數、靜態構造函數和析構函數外,都可以繼承;

? ? ?再說一次,類聲明可以包含以下對象的聲明:常數、字段、方法、屬性、事件、索引器、運算符、實例構造函數、靜態構造函數、析構函數和類型;

? ?3.4.5接口成員

? ? ?接口成員是在接口中和該接口所有基類中聲明的成員,以及從object類繼承的成員。

? ?3.4.6數組成員

? ? ?數組成員是從System.Array類繼承的成員。

? ?3.4.7委托成員

? ? ?委托成員是從System.Delegate類繼承的成員。

? 3.5成員訪問

? ? ?成員的聲明可用于控制對該成員的訪問,成員的可訪問性是由該成員的可訪問性聲明和直接包含它的那個類型的可訪問性結合起來控制的。

? ?3.5.1已聲明可訪問性

? ? ?當成員不包含訪問修飾符時,聲明發生處的上下文會為該成員選擇一個默認的修飾符。

? ? ? ?命名空間隱式的是public,且命名空間聲明中不允許使用訪問修飾符;

? ? ? ?編譯單元或命名空間聲明的類型可以為public、internal,默認是internal;

? ? ? ?類成員可以是5種的任意一個,默認是private;

? ? ? ?結構成員可以是public、internal、private,默認是private,;

? ? ? ?接口成員、枚舉成員都是隱式地public,且在接口/枚舉成員聲明種不允許使用訪問修飾符。

? ? ?總結:未嵌套在其他類型中的被稱為頂級類型,它們只能具有internal或public可訪問性,這些類型的默認可訪問性為internal;

? ?3.5.2可訪問域

? ? ?成員的可訪問域由程序文本節組成(可能是不連續的),從那里可以訪問該成員。預定義類型的可訪問域是無限制的。

? ? ?程序——程序文本:定義為包含在該程序的所有源文件中的全部程序文本;

? ? ?類型——程序文本:定義為包含在該類型的"類體"、"結構體"、"接口體"或"枚舉體"的開始和結束("{"和"}")標記之間的全部程序文本。

? ? ? ? ? ? ? ? ? ?下面這個圖是解釋以下上面這個圖,下面是草稿圖,P表示程序,F表示引用P的其他程序,T表示頂級類型,M表示T中的成員  

? 3.6簽名和重載

? ? ?方法、實例構造函數、索引器和運算符是由它們的簽名來刻畫的:

? ? ? ?方法簽名:由方法的名稱+它的每一個參數的類型和種類(值、引用或輸出)組成,不包括返回類型和params修飾符;

? ? ? ?實例構造函數簽名:由它的每一個參數的類型和種類(值、引用或輸出)組成,同樣不包括params修飾符;

? ? ? ?索引器簽名:由它的每一個參數的類型組成,不包含元素類型;

? ? ? ?運算符簽名:由運算符的名稱+它的每一個參數的類型組成,不包含結果類型。

? ? ?簽名是對類、結構和接口的成員實施重載的機制:

? ? ? ?方法重載允許類、結構或接口用同一個名稱聲明多個方法,條件是它們的簽名在該類、結構或接口中是唯一的;

? ? ? ?實例構造函數重載允許類或結構聲明多個實例構造函數,條件是它們的簽名在該類或結構中是唯一的;

? ? ? ?索引器重載允許類、結構或接口聲明多個索引器,條件是它們的簽名在該類、結構或接口中是唯一的;

? ? ? ?運算符重載允許類或結構用同一個名稱聲明多個運算符,條件是它們的的簽名在該類或結構中是唯一的。

? ? ?注:ref和out參數修飾符也是簽名的組成部分,也就說F(int)和F(ref int)都2個不同的簽名。

轉載于:https://www.cnblogs.com/dreamoffire/p/10063548.html

總結

以上是生活随笔為你收集整理的3.C#基础之基本概念(完成)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。