c# - 具有私有字段的抽象基类
问题描述
所以我有各种各样的类,每个类都有许多不同的属性,但我希望每个类都有一个通用的 MapValue 方法。我创建了一个抽象的通用基类,如下所示:
public abstract class FileSectionBase<T>
{
internal static IDictionary<string, Func<T, string, T>> _mappings;
internal virtual void MapValue(string value, T model)
{
Func<T, string, T> function;
if (_mappings.TryGetValue(value, out function))
{
function(model, value);
}
}
}
但是,每个继承此基类的类都需要在 _mappings 中定义一个映射字典,以便继承的函数起作用。除了类型和从字典传回的函数之外,每个类的函数都是相同的,所以有些东西告诉我我应该能够完成这项工作,但我不知道如何将 _mappings 字段强制为继承的类.
我可以使用公共属性使其工作,但除了类本身访问字典之外,我真的不想要任何东西......理想情况下,实际上 MapValue 方法应该是继承类本身的私有方法
解决方案
推荐阅读
- ionic-framework - ionic 3 charts.js 处理画布
- android - Android RecyclerView如何通过单击项目打开新活动
- vim - 如何在 Vim 中搜索特殊字符 ^?
- python - 让python回答“整个期间“盈亏”的总净额”
- swift - Firebase Cloud Firestore - 初始化集合
- java - Java对象工厂可以用作构造函数吗?
- javascript - 如何在 CSS 或 jQuery 中持久更改按钮的颜色
- java - 教授说我们无法初始化数组。这可能吗?
- r - 如何在 ggplot2 中绘制成对比较(仅样本统计)
- javascript - 下拉菜单不再更改 Shopify 产品图片?发生了什么?