在 C# 中获取对象的类型

Getting a type of of object in C#

在我的 Winform 项目中,我使用 treeview 标签来保存对象,treeview.tag 中存储了多种类型的对象,在尝试获取类型时它没有给出确切的类型,而不是class name 它给出了一个带有一些代理关键字的长名称(不像 namespace + class name)。

有没有什么方法可以从标签对象中得到实际的对象类型

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;
 //            
 }

您可以使用 "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;
    }