首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> C# 入門

C# 學習筆記(4月3日):CTS、運算子優先序、轉換、流程控制、例外處理、方法

     編輯:C# 入門

共同型別系統 (CTS)

  • 定義 .NET 所有語言共享的型別規範
  • 內建型別:實值型別 (堆疊) + 參考型別 (堆積)
  • 所有型別隱含繼承 System.Object
  • 支援跨語言型別互通 (CLS 合規子集)

運算子優先序與關聯性

優先序 (高→低)


1. 主要運算式: x.y, x[...], x(...), new, typeof, checked, unchecked
2. 一元運算子: +, -, !, ~, ++, --, (T)x, await
3. 乘除: *, /, %
4. 加減: +, -
5. 位移: <<, >>
6. 關係/型別測試: <, >, <=, >=, is, as
7. 相等: ==, !=
8. 邏輯 AND: &
9. 邏輯 XOR: ^
10. 邏輯 OR: |
11. 條件 AND: &&
12. 條件 OR: ||
13. Null 聯合: ??
14. 條件: ?:
15. 指派: =, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
16. Lambda: =>

關聯性:多為左結合,指派/條件/Null聯合為右結合。

型別轉換

類型語法特性範例
隱含轉換自動無資訊遺失、不拋例外int → long, Derived → Base
明確轉換(T)x可能遺失/失敗、可拋例外double → int, Base → Derived
使用者定義implicit/explicit operator自訂型別間轉換Celsius ↔ Fahrenheit
協助方法Convert.ToXxx, Parse, TryParse字串/物件轉基本型別int.Parse("42")

溢出檢查


checked { int x = int.MaxValue + 1; } // 拋 OverflowException
unchecked { int y = int.MaxValue + 1; } // 環繞 -2147483648
// 預設由專案設定決定 (通常 unchecked)

流程控制陳述式

選擇

  • if/else:布林條件
  • switch:模式比對、字串、列舉、整數

迴圈

  • while:前置條件
  • do-while:後置條件
  • for:計數器控制
  • foreach:集合迭代 (唯讀)

跳轉

  • break:離開迴圈/switch
  • continue:下一次迭代
  • goto:標籤/case/default
  • return:離開方法
  • throw:拋出例外

例外處理


try {
    // 可能拋出例外的程式碼
}
catch (FileNotFoundException ex) {
    // 特定例外處理
}
catch (IOException ex) when (ex.HResult == 0x80070020) {
    // 條件捕獲 (C# 6+)
}
catch (Exception ex) {
    // 通用處理
}
finally {
    // 確定執行清理碼
}

自訂例外


[Serializable]
public class BusinessException : Exception {
    public string ErrorCode { get; }
    public BusinessException(string code, string message) : base(message) 
        => ErrorCode = code;
    protected BusinessException(SerializationInfo info, StreamingContext ctx) : base(info, ctx) { }
}

方法

特性

  • 所有方法隸屬類別/結構 (無全域函數)
  • Main 為進入點
  • 參數:傳值、ref、out、in、params
  • 多載:同名不同簽章
  • 遞迴、迭代器 (yield return)、非同步 (async/await)

範例


using System;
class MethodDemo {
    public static void MyMethod() {
        Console.WriteLine("這是一個方法");
    }
    public static int Main() {
        Console.WriteLine("Main 也是方法");
        MyMethod();
        return 0;
    }
}

總結

CTS 奠定跨語言型別互通基礎。運算子優先序決定運算式求值順序。型別轉換需注意溢出與資訊遺失。流程控制提供結構化程式設計基礎。例外處理以 try/catch/finally 確保資源清理。方法是程式碼組織基本單位,全屬於型別內部。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved