我目前正在尝试对泛型类型进行一些转换。所以基本的想法是有一个方法,它接受一个泛型类型,并根据传入的类型做不同的事情。
为简单起见,我将只展示float,bool和default
设置看起来像这样(T类本身定义的泛型类型在哪里):
protected T DoStuff(T value)
{
switch (value) {
case float floatValue:
float result = DoFloatStuff(floatValue);
switch (result) {
case T output:
return output;
}
case bool boolValue:
bool result = DoBoolStuff(boolValue);
switch (result) {
case T output:
return output;
}
default:
// return value;
DoRealGenericStuff(value) // Edited, since I just want to sort out some special cases
}
}
Run Code Online (Sandbox Code Playgroud)
WhereDoFloatStuff和DoBoolStuff只是分别具有 1 个参数和它们类型的返回类型的方法。
如果我不那样做(我尝试了一些 typeof()之前转换),编译器总是抱怨它不能从T …