精通C#學習筆記--C# 與 .NET平臺

raindayinrain發表於2018-07-04

.NET之道

1.

NET
執行庫環境
基礎類庫

CTS【公共型別系統】:
執行庫支援的資料型別和程式設計結構

2.

C#所生成的程式碼只能在.NET執行庫中執行。
在.NET執行庫下執行的程式碼,稱為託管程式碼。
包含託管程式碼的二進位制單元稱為程式集。

3.

儘管 .NET二進位制檔案與非託管windows二進位制檔案【.dll,.exe】具有相同的副檔名,但它們的內部是完全不同的。

.NET二進位制檔案,包含的 中間語言和型別後設資料。
一般在 CIL指令被.NET執行庫引用時,才編譯為特定平臺的指令。

4.

5.CTS

.NET中,型別是一個一般性的術語,指的是 集合{類,介面,結構,列舉,委託}裡的任意一個成員。
5.1.CTS類型別

class Calc
{
    public int ......
    {
        return ......
    }
}

類的特徵:
密封性:密封類不能作為其它類的基類
類可實現介面
5.2.CTS介面型別

public interface IDraw
{
    void Draw();
}

5.3.CTS結構型別

struct Point
{
    public int xPos;

    public Point(int x)
    {
        xPos = x;
    }

    public void PrintPos()
    {
        Console.WriteLine("({0}, {1})", xPos);
    }
}

5.4.CTS列舉型別
派生自基類 System.Enum

enum CharType
{
    Wizard = 100,
    Thief -200
}

5.5.CTS委託型別
類似於函式指標。
派生自System.MulticastDelegate,用delegate來宣告。

delegate int BinaryOp(int x, int y);

5.6.CTS型別成員
5.7.CTS資料型別

System.Byte     byte
System.SByte    sbyte
System.Int16    short
System.Int32    int
System.Int64    long
System.UInt16   ushort
System.UInt32   uint
System.UInt64   ulong
System.Single   float
System.Double   double
System.Object   object
System.Char     char
System.String   string
System.Decimal  decimal
System.Boolean  bool

6.CLS

描述了支援.NET的編譯器須支援的最小的和完全的特徵集。

// 讓編譯器按CLS檢查
[assembly: CLSCompliant(true)]

7.基礎類庫

.NET提供了大量的基礎設施。
需要對這些基礎設施進行了解,它們是.NET下程式設計的基礎。

System
System.Collections
System.Collections.Generic
System.Data
System.IO
System.Reflection
System.Runtime.InteropServices
System.Drawing
System.Windows
System.Windows.Controls
System.Windows.Shapes
System.Threading
System.Threading.Tasks
System.Xml

需要用到特定程式集時,進行有針對性的學習。
邊幹邊學。

8.關於.NET的跨平臺

C#
CIL
程式集
.NET命名控制元件
執行時引擎結構
是國際規範。

Mono提供了 符合標準定義的
C#編譯器
.NET執行時引擎
使其可在linux等其它系統使用。

構建C#應用

1.構建C#應用

4.1.csc.exe

1.把csc.exe所在路徑新增到環境變數
2.開啟cmd,轉到原始檔所在路徑
3.csc /r:System.Windows.Forms;…; /t:exe xx1.cs xx2.cs …【編譯器會自動引用一些.NET核心程式集】

4.2.ildasm.exe【用於檢視編譯後.exe,.dll資訊】

1.把ildasm.exe所在路徑新增到環境變數
2.開啟cmd,轉到目標exe或dll所在路徑
3.ildasm xx.exe xx.dll

4.3.C#響應檔案【.rsp】

C#響應檔案,包含原始 編譯時,指令資訊。
1.把csc.exe所在路徑新增到環境變數
2.開啟cmd,轉到C#響應檔案所在路徑
3.csc @name.rsp

存在預設C#響應檔案 【與csc.exe放在同一目錄】
編譯時,指定 /noconfig 來通知不使用預設的C#響應檔案。

2. .NET SDK文件系統

.NET提供了大量的基礎類庫。
這些類庫構成了.NET下功能開發的基礎。
需要花費時間,學習相關的類庫。

相關文章