C# 方法與引數 常見名稱空間彙總 using的使用 main方法引數
本文主要講
- C# 常見名稱空間
- using static 指令 && 呼叫靜態方法
- 巢狀名稱空間&&作用域
- 別名
- Main() 方法
C# 常見名稱空間
名稱空間 | 作用 |
System |
建立檔案是預設引入,處理數學計算、、環境變數、輸出控制檯、垃圾回收器及一些常見的異常和特徵。 |
System.Collections |
同:都是處理物件集合(列表和字典等) 異:後者是使用 泛型的強型別集合 |
System.Collections.Generic | |
System.Data |
用於資料庫處理 例如 ADO.NET System.Data.Odbc System.Data.Oracle Client System.Data.OleDb System.Data.SqlClient |
System.IO |
處理檔案輸入/輸出(I/O) 資料壓縮 埠操作 |
System.IO.Comoression |
|
System.IO.Ports |
|
System.Drawing |
用於繪圖、進行影象處理 |
System.Windows.Froms | 包含構建使用者介面和各類控制元件的型別 |
System.Windows |
WPF UI工具包 |
System.Windows.Controlls | |
System.Windows.Shapes | |
System.Linq |
提供LINQ 功能(語言整合查詢) |
System.Web |
構建.NET Web應用程式,用於支援ASP.NET |
System.ServiceModel |
通過WCF API構建分散式應用程式 |
System.Workflow.Runtime |
使用WCF API構建支援工作流的應用程式的型別 |
System.Workflow.Activities | |
System.Threading |
用來構建多執行緒應用程式的型別 |
System.Threading.Tasks |
基於任務的非同步操作 |
System.Security |
以安全為中心的名稱空間,有很多用來處理許可權、加密等問題的型別 |
System.Xml |
用於XML資料互動的型別 |
注:在C#中,引入一個名稱空間時,是不能使用該名稱空間的子空間。
例如,引入了System.Collections,但是不能使用System.Collections.Generic 內的類和方法。
其它更多不同功能的、不同分類的名稱空間,推薦檢視文章
using static 指令 && 呼叫靜態方法
在C#中在不同名稱空間的類,需要先引入該名稱空間,然後new(例項化)後,才能使用。對於靜態類來說,在引入名稱空間後,即可直接使用。
1 using System; 2 using System.IO; 3 4 public class Test 5 { 6 static void Main() 7 { 8 int num = Add(5, 6); 9 Console.WriteLine(num); 10 Console.ReadKey(); 11 } 12 public static int Add(int x, int y) 13 { 14 return x + y; 15 } 16 }
例如控制檯用於輸出字串的方法 Console.WriteLine() ,引入 System 後,即可直接使用。在上述程式碼的第 9 行。
樣式 類.方法(); Console.WriteLine()
對於跟 Main 在同一個檔案中的方法,必定是靜態方法, 直接呼叫該方法名。在上述程式碼的第8行。
樣式 方法(); 如 Add();
如果不在同一名稱空間的靜態方法,我想直接使用 方法(); 而不是 類.方法(); 這種形式呢?
這就需要使用 using static 指令。
using static 指令指定一種型別,無需指定型別名稱即可訪問其 靜態成員和巢狀型別。
如
using static System.Console;
修改上面的示例程式碼,留意第9、10行
1 using System; 2 using System.IO; 3 using static System.Console; 4 public class Test 5 { 6 static void Main() 7 { 8 int num = Add(5, 6); 9 WriteLine(num); 10 ReadKey(); 11 } 12 public static int Add(int x, int y) 13 { 14 return x + y; 15 } 16 }
可以直接使用 WriteLine() 了。
注:
- 這種方式雖然可以簡化長度,但是,也會容易出現很多問題,例如名稱衝突、可讀性降低。
- using static 只針對靜態型別有效!
巢狀名稱空間&&作用域
名稱空間也有作用域,離開作用域的型別將無法使用。但名稱空間的引入,不像變數的宣告那麼“任性”。
名稱空間的引入是使用using指令,using指令可以在名稱空間外、名稱空間內的頂部並且在類的外面使用。
在名稱空間外使用的using指令作用域是 該檔案下的所有名稱空間。
在名稱空間內使用的using指令作用域是 該名稱空間內。
下面是一個例子。
1 using System; 2 namespace a 3 { 4 using System.IO; 5 public class Test 6 { 7 8 static void Main() 9 { 10 Console.WriteLine("名稱空間a"); 11 FileInfo file = new FileInfo("檔案地址"); 12 } 13 } 14 } 15 namespace b 16 { 17 public class Test 18 { 19 static void Main() 20 { 21 Console.WriteLine("名稱空間b"); 22 FileInfo file = new FileInfo("檔案地址"); //報錯 23 } 24 } 25 }
第一行 using System; 名稱空間 a、b 都能使用,然而 只在名稱空間中 a 中 using System.IO; (在第四行) ,名稱空間 b 是不能使用的。
注:
很少會這樣寫程式碼,因為根據約定,每個檔案只應該有一個型別宣告、在頭部引入名稱空間。
別名
C# 中,可以使用using指令為名稱空間或型別取一個別名,別名將在檔案全範圍起替代作用。
最常見用途為消除兩個同名型別的歧義和縮寫名稱。
使用方法
using 別名 = 名稱空間或型別;
例(第二行):
1 using System; 2 using Test1 = System.Console; 3 namespace core 4 { 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 Test1.WriteLine("測試"); 10 } 11 } 12 }
Main 方法
Main 方法是程式入口,一般有以下四中寫法:
- 沒有引數 返回值為 void
static void Main()
- 沒有引數 返回值為 int
static int Main()
- 帶有引數 返回值為 void
static void Main(string[] args)
- 帶有引數 返回值為 int
static int Main(string[] args)
寫法的考慮是在執行程式是提供命令列引數,並在Main方法中返回狀態識別符號。
使用visual studio 軟體開發C#,一般用不到,使用控制檯應用手動編譯 原始碼時,提供的引數會傳入Mian方法中。
C#程式中可以出現多個 Main() 方法,但必須在執行時,確定或指定入口 Main 。