2017-04-22 81 views
0

在我的Winform項目中,我使用treeview標籤來存放對象,有多種類型的對象存儲在treeview.tag中,並且嘗試獲取類型時它沒有給出確切的類型,而不是類名,它使用一些代理關鍵字給出一個長名稱(與名稱空間+類名不同)。在C#中獲取對象的類型

是否有任何方法從標籤對象獲得實際的對象類型

var tag= e.Node.Tag; 
Type gettype=tag.GetType 
//MessageBox.Show(gettype.ToString());   
if (gettype.Equals(typeof(Product))) 
{ 
    var product = (Product)e.Node.Tag; 
    //    
} 
if (gettype.Equals(typeof(Category))) 
{ 
    var caegory= (Category)e.Node.Tag; 
//    
} 
+0

你是什麼意思,「它是給」?如果你可以提供[mcve]而不是僞代碼,那真的很有幫助。 –

+0

你在使用Entity Framework嗎? –

+0

使用實體框架來獲取對象,它被分配給treeview的標籤屬性 – user3658516

回答

2

您可以使用「is」運算符來檢查標籤是否是產品或類別和「AS」運營商的類型轉換。下面是例子。

var tag = e.Node.Tag; 
    if (tag is Product) 
    { 
     var product = e.Node.Tag as Product; 
    } 
    if (tag is Category) 
    { 
     var caegory = e.Node.Tag as Category; 
    } 
相關問題