首页 > 解决方案 > 具有私有字段的抽象基类

问题描述

所以我有各种各样的类,每个类都有许多不同的属性,但我希望每个类都有一个通用的 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 方法应该是继承类本身的私有方法

标签: c#

解决方案


推荐阅读