問題:
考慮這些類型定義:
public interface IFoo<T> : IBar<T> {} public class Foo<T> : IFoo<T> {}
目標:
如何決定類型Foo
答案:
利用TcKs 提出的方法,我們可以使用以下LINQ 查詢:
bool isBar = foo.GetType().GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IBar<>));
此查詢檢查foo 變數的任何實作的介面是否是泛型型別及其泛型型別定義是否與IBar T 。如果存在這樣的接口,則表示Foo
以上是如何確定泛型類型是否僅使用其類型名稱來實現特定的泛型介面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!