首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 擴展方法進階技巧:改良 ScottGu In 擴展方法 (下)

     編輯:關於C語言

前文使用 params object[] 簡化呼叫,但存在型別安全隱患:s.In(name1, name2, name, 3) 編譯通過卻邏輯錯誤。引入泛型徹底解決:

最終改良版

public static bool In<T>(this T t, params T[] c) {
    return c.Any(i => i.Equals(t));
}

編譯器攔截錯誤

編譯錯誤截圖

嘗試混用型別(如 string 與 int)將導致編譯失敗,靜態型別檢查在編譯期即捕捉錯誤。

技術總結

  • params 簡化呼叫語法,支援可變參數
  • 泛型 <T> 確保所有參數與接收者型別一致
  • Any + Lambda 簡化迭代邏輯

思想啟發

網路文章多轉貼,少深入。只要多想一步,結合現有語言特性(params + 泛型 + LINQ),往往能發現更優雅、更安全的解法。

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