http://blog.csdn.net/qiaoquan3/article/details/77951390
參考網易云課程《零基礎學c#》
> 命名空間 主要用來標示“類”的可見范圍。
# 關鍵字:namespace
用namespace來創建命名空間,用using 類引用命名空間,使用命名空間中的類功能。
比如 如果加入 using.system.windows,那么就可以使用 系統默認的關于windows開發的一些功能了。

# 不同命名空間中類的互相引用
比如解決方案有兩個`namespace 測試+namespace Demo` 在namespace 測試1中,想引用namespace Demo 中的Test類。那么需要在最前面寫上`using Demo`。否則將出現第二張圖的提示。


# 關鍵字
有些單詞在c#中有特定意義,不能作為我們自己編寫的代碼中的元素

1、命名空間的設計目的是提供一種讓一組名稱與其他名稱分隔開的方式。在一個命名空間中聲明的類的名稱與另一個命名空間中聲明的相同的類的名稱不沖突。
命名空間的定義是以關鍵字 namespace 開始,后跟命名空間的名稱。
```
namespace namespace_name
{
// 代碼聲明
}
```
2、命名空間表達
```
namespace Mynamespace
{
public class Myclass { }
}
static void Main(string[] args)
{
Mynamespace.Myclass obj = new Mynamespace.Myclass();
//obj只是代指,可以是隨便的什么;此句中引用了上面的Mynamespace 中的Myclass類,并生成了一個新的實例
}
```
命名空間太長的話,可以在程序的最前面寫using。
```
using Mynamespace.Myclass
```
如果A空間中有個名叫T的類,B空間中也有個名叫T的類,那么可以寫成
```
using na = A
using nB = B
//那么,在引用A中T類的時候可以寫成nA.T (同理:nB.T)
```
命名空間靜態:
using static xxx 就可以引用靜態的類。比如console就是靜態的類
一般寫成using static System.Console;
如果只寫了using System,那么在引用console的時候就需要把類名字寫上,比如
```
using System
……
Console.WriteLine()
```
或寫成
```
using static System.Console;
……
WriteLine(); //直接使用console中的靜態writeline類
Read(); //直接使用console中的靜態read類
```
# Main方法
> * Main方法必須定義為static
> * Main 必須首字母大寫
> * 返回值必須是void 或int類型,不能有其他
> * 命令行參數可選(一般不寫)=>
一般寫成以下形式:`static void Main(string[] arg)` 這句就是命令行參數。
main()默認為c#的切入點,也就是程序開始運行的地方。默認格式為以下代碼。注意只能無需返回(void)或返回0(int),只有這兩種類型,否則會報錯。
```
static void Main()
{}
```
如果有兩個main,則需設置????
program has more than one entry point defined. compile with /main to specify the type contains the entry point.

## int類型
如果用`static int Main() {}`
則必須有返回值,否則提示:
`CS0161 C# '': not all code paths return a value`

這時改成:
```
static int Main()
{
//輸入內容
Console.WriteLine("hello,world");
Console.ReadLine();
return 0; //加入這一行,程序就可行了。
}
```
## 常見錯誤
1. CS5001 C# 程序不包含適合于入口點的靜態 "Main" 方法
原因:沒寫Main(),或者寫成小寫main(),或者不是static類型。

解決辦法:檢查Main()書寫是否正確。
2. CS0161 C# '': not all code paths return a value 并非所有的代碼路徑都返回值
解決辦法如圖:當需要用int類型時,需加入return 整數來返回。

3. CS0017 C# 程序定義了多個入口點。使用 /main (指定包含入口點的類型)進行編譯
指定Main()入口
意思是:定義了多個Main()程序的入口比如在下圖,兩個namespace都有Main()。就會發生錯誤。

解決辦法:
打開該解決方法的屬性,在應用程序=>啟動對象里面設置相應的入口命名空間即可。


- 幫助文檔 microsoft helo viewer
- c#開發環境及visual studio安裝注意事項
- c#程序基本結構-基本語法
- Q1: public static void main(String[] args) 是什么意思
- Q2: c#命名空間+Main方法
- Q3:注釋+命名規則+代碼規則
- Q4: c#語句 system => console
- Q5: 數據類型 .net
- Q5: 常用名字、變量、運算符
- Q6: 對話窗輸入-屬性
- Q7: 遞歸
- Q8:決策分支、條件判斷語句 if 語句
- Q9:數組
- Q10:字符串
- Q11:對象、類、訪問權限、靜態動態函數
- Q12:方法及參數——繼承于類
- Q13:構造函數
- Q14:繼承——base 關鍵字
- Q15:多態、虛方法、接口
- Q16:創建窗體應用、控件
- Q17:Ado數據訪問、連接 sqlserver 數據庫
- Q18: 讀取數據command + DataRead( )、DataSet + DateAdapter
- Q19: Entity Framwork、entity 與 ADO.net的區別
- Q20: 對話框、文件、文件夾
- Q21: 導入excel數據、更新到 dbo 數據庫中
- Q26: 獲取 excel 中每個 sheet 的表名
- Q22: 兩個窗體之間數據+方法傳遞
- Q23: 數學對象
- Q24: c#網站編寫
- Q25: visual studio2017如何查看幫助
- Q27: c# dictionary 字典對象
- Q28: 數組與dataTable互相轉化