第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

測試對象是否是C#中的泛型類型

測試對象是否是C#中的泛型類型

夢里花落0921 2019-09-03 16:01:33
如果對象是泛型類型,我想執(zhí)行測試。我試過以下但沒有成功:public bool Test(){    List<int> list = new List<int>();    return list.GetType() == typeof(List<>);}我做錯了什么,我該如何進行這項測試?
查看完整描述

3 回答

?
守候你守候我

TA貢獻1802條經(jīng)驗 獲得超10個贊

如果要檢查它是否是泛型類型的實例:


return list.GetType().IsGenericType;

如果你想檢查它是否是通用的List<T>:


return list.GetType().GetGenericTypeDefinition() == typeof(List<>);

正如Jon指出的那樣,這會檢查確切的類型等價。返回false并不一定意味著list is List<T>返回false(即,不能將對象分配給List<T>變量)。


查看完整回答
反對 回復(fù) 2019-09-03
?
汪汪一只貓

TA貢獻1898條經(jīng)驗 獲得超8個贊

您可以使用動態(tài)althougth來使用更短的代碼,這可能比純反射更慢:


public static class Extension

{

    public static bool IsGenericList(this object o)

    {

       return IsGeneric((dynamic)o);

    }


    public static bool IsGeneric<T>(List<T> o)

    {

       return true;

    }


    public static bool IsGeneric( object o)

    {

        return false;

    }

}




var l = new List<int>();

l.IsGenericList().Should().BeTrue();


var o = new object();

o.IsGenericList().Should().BeFalse();


查看完整回答
反對 回復(fù) 2019-09-03
  • 3 回答
  • 0 關(guān)注
  • 662 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號