精通C#學習筆記---C#核心程式設計結構

raindayinrain發表於2018-07-08

C#核心程式設計結構

1.

每一個可執行的C#應用必須包含一個定義了Main方法的類。這個方法用來表示應用的入口點。所在的類,叫做應用程式物件。

class xxx
{
    // Main四種形式
    static void Main(string[] args);
    static int Main(string[] args);
    static void Main();
    static int Main();
}

編譯時 /main用來指定用作入口點的Main方法。

// 通過函式呼叫獲取命令列引數
string[] theArgs = Environment.GetCommandLineArgs();

2.應該掌握的基礎設施

2.1.
Environment
System.Console
格式化控制檯輸出【Formatting Types】
string.Format(“”, …)// PresentationFramework.dll
System.Object
System.ValueType【該型別及其派生類,在棧上分配。非該型別,在堆上分配】
System.Boolean
System.Byte
System.Int32
System.UInt32
System.Char
System.String
System.Double
System.Object
System.DateTime
System.TimeSpan
System.Numerics.BigInteger // System.Numerics.dll
System.Text.StringBuilder
Type Conversion Tables
Enum
2.2.C#資料型別

bool            System.Boolean
sbyte       System.SByte                    -2^7, 2^7-1
byte            System.Byte                 0, 2^8-1
short       System.Int16                    2^15, 2^15-1
ushort      System.UInt16               0, 2^16-1
int         System.Int32                    -2^31, 2^31-1
uint            System.UInt32               0, 2^32-1
long            System.Int64                    -2^63, 2^63-1
ulong       System.UInt64               0, 2^64-1
char            System.Char                 0x0000, 0xffff16Unicode字元】       
float           System.Single                   -3.4*10^38, 3.4*10^38
double  System.Double               +/- 5.0*10^-324, +/- 1.7*10^308
decimal System.Decimal              (-7.9*10^28, 7.9*10^28) / 10^0~28
string      System.String                   Unicode字符集合,受記憶體限制
object      System.Object                   一切.NET型別的基類 

所有內建資料型別都支援預設構造。
預設構造:
bool false
數值型別 0 / 0.0
char 單個空字元
BigInteger 0
DateTime 1/1/0001 12:00:00 AM
物件引用 NULL

C#字串字面量中可以包含各種轉義字元,用來限制字元資料怎樣被輸到輸出流中
\’ ’
\” ”
\ \
\a
\n
\r
\t

以@為字首的字串字面量記法,稱逐字字串。
使用逐字字串可以使對一個字面量的轉義字元的處理失效並輸出字串。【此時,可以通過重複”標記向一個字面量字串插入一個雙引號】

System.String:一旦將初始值賦給字串物件,字元資料就不能改變了。
System.Text.StringBuilder 呼叫這個型別的成員時,都是直接修改物件內部的字元資料。

3.窄化和寬化

寬化用於定義隱式向上轉換,不會導致資料丟失。
窄化時,須使用強制型別轉換。【(目標型別)】
C#提供checked關鍵字,當把一個語句(或者語句塊)包裝在checked關鍵字域內時,C#編譯器會使用額外CIL指令,測試資料溢位。如果發生溢位,產生執行時異常:System.OverflowException。也可編譯時,用 /checked標誌。將檢測專案內所有溢位。
unchecked,用於將其包圍的域內,禁止溢位檢查。

4.隱式型別本地變數

var VariableName = InitialValue; // 依據本地資料點的初始值自動推斷實際的資料型別。

var只能用於方法或屬性範圍內的本地變數。且必須在宣告時分配初始值,初始值不能是null。隱式型別資料是強型別資料【型別一經確定,即是不可變的】
用var關鍵字定義返回值,引數,自定義型別的欄位資料,都是不合法的。
主要用在LINQ查詢的返回資料。

5.C#迭代結構

for
foreach/in【in關鍵字後面可以是任何實現IEnumerable介面的類】
while
do/while

if/else【只能作用於布林表示式】
switch【除了數值資料外,還可以計算字串資料,列舉型別】

相關文章