本文主要講
- 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 內的類和方法。
其它更多不同功能的、不同分類的命名空間,推薦查看文章
https://blog.csdn.net/lidandan2016/article/details/77994232?locationNum=8&fps=1
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 。
