强制 Type 变量为特定基础 class 类型
Enforce Type variable to be of a specific base class type
具有以下代码:
class Car{}
class WV : Car{}
class BMW: Car{}
class Bike{}
class Yamaha : Bike {}
class KTM : Bike{}
void DoSomething(<some other parameters>, Type targetType){}
//I call DoSomething with:
service.DoSomething(...., typeof(BMW));
有什么方法可以在程序员编写代码时强制 targetype
仅用于基础 class Car
?
在执行过程中很容易检查,但我想强制执行我们想要的预期基数class。
我希望当程序员键入:service.DoSomething(...., typeof(KTM));
代码在编译时出错。
谢谢
您可以尝试为您的用例使用泛型。它看起来像:
void DoSomething<T>(<some other parameters>) where T: Car {}
service.DoSomething<BMW>(...);
具有以下代码:
class Car{}
class WV : Car{}
class BMW: Car{}
class Bike{}
class Yamaha : Bike {}
class KTM : Bike{}
void DoSomething(<some other parameters>, Type targetType){}
//I call DoSomething with:
service.DoSomething(...., typeof(BMW));
有什么方法可以在程序员编写代码时强制 targetype
仅用于基础 class Car
?
在执行过程中很容易检查,但我想强制执行我们想要的预期基数class。
我希望当程序员键入:service.DoSomething(...., typeof(KTM));
代码在编译时出错。
谢谢
您可以尝试为您的用例使用泛型。它看起来像:
void DoSomething<T>(<some other parameters>) where T: Car {}
service.DoSomething<BMW>(...);