【问题标题】:Getting a type of of object in C#在 C# 中获取一种类型的对象
【发布时间】:2017-09-19 06:21:54
【问题描述】:

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

有什么方法可以从标签对象中获取实际的对象类型

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

【问题讨论】:

  • “它正在给予”究竟是什么意思?如果您可以提供minimal reproducible example 而不是伪代码,那将非常有帮助。
  • 你在使用实体框架吗?
  • 使用实体框架获取对象,赋值给treeview的tag属性

标签: c# winforms tags treeview gettype


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多