Khi ai đó đã đề cập: Benjamin 10 Tháng 4 '13 tại 22:21"
Nó chắc chắn là dễ dàng để không chú ý và nhận được những lập luận cho IsAssignableFrom ngược.Tôi sẽ đi với GetInterfaces ngay bây giờ: p -
Vâng, một cách khác chỉ là tạo ra một phương pháp mở rộng ngắn đáp ứng, một cách nào đó, cách suy nghĩ "thông thường nhất" (và đồng ý đây là ít sự lựa chọn cá nhân để làm cho nó hơi "tự nhiên hơn" dựa trên sở thích của một người):
public static class TypeHelpers
{
public static Boolean IsAssignableTo(Type type, Type assignableType)
{
return assignableType.IsAssignableFrom(type);
}
}
public static class TypeExtensions
{
public static Boolean IsAssignableTo(this Type type, Type assignableType)
{
return TypeHelpers.IsAssignableTo(type, assignableType);
}
}
Và tại sao không đi chung chung hơn một chút (cũng không chắc chắn nếu nó thực sự là thú vị, tôi cũng giả định tôi chỉ chuyển một đoạn đường 'cú pháp' khác):
public static class TypeHelpers
{
public static Boolean IsAssignableTo(Type type, Type assignableType)
{
return assignableType.IsAssignableFrom(type);
}
public static Boolean IsAssignableTo<TAssignable>(Type type)
{
return TypeHelpers.IsAssignableTo(type, typeof(TAssignable));
}
}
public static class TypeExtensions
{
public static Boolean IsAssignableTo(this Type type, Type assignableType)
{
return TypeHelpers.IsAssignableTo(type, assignableType);
}
public static Boolean IsAssignableTo<TAssignable>(this Type type)
{
return TypeHelpers.IsAssignableTo<TAssignable>(type);
}
}
Tôi nghĩ rằng nó có thể là tự nhiên nhiều hơn nữa theo cách đó, nhưng một lần nữa chỉ là vấn đề của những ý kiến rất cá nhân:
var isTrue = michelleType.IsAssignableTo<IMaBelle>();
Hãy nhớ rằng typeof (IMyInterface) .IsAssignableFrom (typeof (IMyInterface)) cũng đúng, có thể có kết quả không mong muốn trên mã của bạn. –
Nó chắc chắn là dễ dàng để không chú ý và nhận được các đối số cho 'IsAssignableFrom' ngược. Tôi sẽ đi với 'GetInterfaces' ngay bây giờ: p – Benjamin
Biến thể' IsAssignableFrom (t1) 'là khoảng 3x nhanh hơn' GetInterfaces(). Chứa (t2) 'đối tác trong mã của tôi. –