前文使用 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),往往能發現更優雅、更安全的解法。