根據Mungled 類型確定通用介面的實作
在只有表示類別的損壞類型可用的情況下,確定它是否實現通用介面可能具有挑戰性。考慮以下範例:
public interface IFoo<T> : IBar<T> {} public class Foo<T> : IFoo<T> {}
問題出現了:我們如何確定類型 Foo 是否實作了通用介面 IBar
解決方案:
解決此查詢的一種方法是利用 C# 中提供的 IsGenericType 和 GetGenericTypeDefinition 方法。這些方法允許檢查和操作泛型類型。
// Assuming 'foo' represents the mangled type of 'Foo<T>' bool isBar = foo.GetType().IsGenericType && foo.GetType().GetGenericTypeDefinition() == typeof(IBar<>);
此程式碼評估重整類型是否為泛型,並將其泛型類型定義與預期的介面類型定義 typeof(IBar) 進行比較。如果兩個條件都滿足,則 isBar 變數設為 true,表示該類型實作了通用介面。
以上是如何確定重整類型是否實作 C# 中的通用介面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!