我有一堂课
public class CatResult<T> where T : class
{
public T SomeProperty { get; set; }
public CatResult(T someProperty)
{
SomeProperty = someProperty;
}
}
我想稍后再将其作为更一般的AnimalResult返回,它是相同的,尽管以后我会添加其他属性:
public class AnimalResult<T> where T : class
{
public T SomeProperty { get; set; }
}
最初我是这样做的:
return new AnimalResult<KittyCat>(_someRepo.GetCatResult().SomeProperty);
但是我实际上并不介意他们被耦合。我希望做这样的事情:
return AnimalResult.FromCatResult(_someRepo.GetCatResult());
但是C#要求我输入type参数,即:
return AnimalResult<KittyCat>.FromCatResult(_someRepo.GetCatResult());
我认为我可以创建另一个没有任何泛型类型参数的类,称为AnimalResult
,并在其上放FromCatResult
,但这是行不通的,因为它需要知道T为返回类型
有没有一种方法可以自动推断出type参数?