微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#-如何基于字符串返回类型

如何解决C#-如何基于字符串返回类型

| 例如,我有一个名为Clothing的类,该类继承自Product的抽象类。
public class Clothing : Product
{
    public bool IsInSeason {get; set;}
    public string Material {get; set; }
    public Decimal IsFeatured { get; set; }
}
编辑: 在一个函数中,如何传递字符串“服装”并返回类的类型?
ReturnTypeOfClassBasedOffOfString(string class)
{
    // ... 
}
    

解决方法

        使用Type.GetType(string) 请注意,有时类名还不够。有时您需要提供AssemblyQualifiedName \“如果类型在当前正在执行的程序集中或在Mscorlib.dll中,则只需提供其名称空间限定的类型名称即可。”     ,        您可以使用
Type.GetType
,但是:您想要实现什么?我敢打赌,您需要一些简单的东西。为什么我们完全需要
Clothing
类? 顺便说一句:
ReturnTypeOfClassBasedOffOfString(string class)
不会编译。您需要
ReturnTypeOfClassBasedOffOfString(string classname)
ReturnTypeOfClassBasedOffOfString(string @class)
。     ,        
static Type ReturnTypeOfClassBasedOffOfString(string className)
{
  foreach (Assembly a in AppDomain.Current.GetAssemblies ())
  {
    foreach (Type t in a.GetTypes ())
    {
      if (t.Name == className) // Ignore namespace
        return t;
    }
  }

  return null;
} 
    ,        您可以使用
Type.GetType(\"MyApplication.Product\",true)
为此,但是您必须包括名称空间(例如,\“ MyApplication \”)。     ,        如果您想输入:
Type.GetType
足够。如果要使用它的字符串名称创建实例,则应使用
Activator.CreateInstance
祝好运     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。