首页 > 解决方案 > 通过返回的泛型 T 类型根据条件创建实例

问题描述

我有不同的类具有相同的属性名称。

我获取数据并根据条件分配给这些属性,例如

if age<10  
var ClassA = new ClassA();
ClassA.Percent =25;  
ClassA.StandarValue=1000;

if age > 25  
var ClassB = new ClassB();
ClassB.Percent =15;  
ClassB.StandarValue=3000;

我可以写一个方法

public T ReturnMyCustomClass(int age)
{ if age< 10  
    return (T)(object)ClassA; 
if age> 25  
   return (T)(object)ClassB;
throw new Exception();
}

我可以将其分配为

var 结果=ReturnMyCustomClass(26);

问题:

if (result is ClassA)   

我如何分配  var myClass=new result();--这是错误的,但是如何从上面返回的对象创建一个实例?

标签: c#genericsc#-4.0collections

解决方案


推荐阅读