获取基 class 变量的导数方法
Get derivative method on base class variable
我有两个 classes 一个基础 class b
和衍生物。在我的代码中,我调用了一个带有基本 class 参数的方法,但我想检测该参数是否为导数。如果是导数,我想调用一个只在导数中的方法。
我的代码示例:
类
public class Base {}
public class Derivative : Base {
public void foo() {
//do something...
}
}
带有参数的方法:
void Action (Base b) {
if (b is Derivative) {
b.foo();
}
}
问题在于它将 b
视为 Base
class。是否可以保留此引用但使用派生的 classes 方法?
在现代 C# 中:
void Action (Base b) {
if (b is Derivative derived) {
derived.foo();
}
}
在较旧的 C# 中:
void Action (Base b) {
var derivative = b as Derivative;
if(derivative != null) derivative.foo();
}
我会对这种模式保持警惕,但这超出了这个问题的范围
我有两个 classes 一个基础 class b
和衍生物。在我的代码中,我调用了一个带有基本 class 参数的方法,但我想检测该参数是否为导数。如果是导数,我想调用一个只在导数中的方法。
我的代码示例:
类
public class Base {}
public class Derivative : Base {
public void foo() {
//do something...
}
}
带有参数的方法:
void Action (Base b) {
if (b is Derivative) {
b.foo();
}
}
问题在于它将 b
视为 Base
class。是否可以保留此引用但使用派生的 classes 方法?
在现代 C# 中:
void Action (Base b) {
if (b is Derivative derived) {
derived.foo();
}
}
在较旧的 C# 中:
void Action (Base b) {
var derivative = b as Derivative;
if(derivative != null) derivative.foo();
}
我会对这种模式保持警惕,但这超出了这个问题的范围