c# - C#从抽象类访问基类变量/函数
问题描述
也许这是不可能的,或者我混淆了一些东西,但它打破了我的头。
假设我们有一个抽象类 A 和一个基于 A 的类 B。A 是否可以从 B 访问变量/函数?
例子:
abstract class A
{
public bool activeA = false;
public bool getState()
{
return test; // The variable from class B
}
}
class B : A
{
public bool test = true;
public void isActive()
{
return base.getState(); // So this should return true because getState() should access the variable test^^
}
}
解决方案
不,这是不可能的。对或潜在地A
一无所知。B
C..Z
如果test
会打开A
,那么两者都A
可以B
访问它。或者,您可以创建一个由 实现的接口,该接口B
知道A
并B
作为参数传递给A
.
这可能看起来像这样:
interface IB
{
bool Test { get; }
}
abstract class A
{
public bool activeA = false;
public bool getState(IB arg)
{
return arg.Test;
}
}
class B : A, IB
{
public bool Test => true;
public bool isActive()
{
return base.getState(this);
}
}
推荐阅读
- c++ - 处理c ++时如何不黑屏
- python - 在 Python 中解析电子邮件正文
- javascript - 如何将视频轨道添加到 Simple-Peer 流?
- java - 不明白二叉树最大路径和问题的解法
- javascript - 将 Javascript 文件与 Node.js 和 HTML 链接的问题
- c# - 从其他项目 protobuf 文件导入消息类型
- python-3.x - ShimWarning 运行 `help("modules")`
- awk - 如何在 sed 或 awk 中搜索点和数字并在数字前加上前导零?
- groovy - 以特定格式在soapui中传递今天的日期
- node.js - 不能使用变量作为键,mongoose .find() 的值