不从派生类调用c#静态构造函数

Tre*_*vor 5 c# inheritance static-constructor

class Bus<T>
{
    static Bus()
    {
        foreach(FieldInfo fi in typeof(T).GetFields())
        {
            if(fi.FieldType == typeof(Argument))
            {
                fi.SetValue(typeof(T), new Argument("busyname", "busyvalue"));
            }
        }
    }
}
class Buss : Bus<Buss>
{
    public static Argument field;
}
Run Code Online (Sandbox Code Playgroud)

有什么想法可以使这项工作有效,以便对Buss中的static字段的引用触发Bus中的静态构造函数吗?

rec*_*ive 3

这对您来说很重要,这一事实可能意味着您错误地使用了静态构造函数。

考虑到这一点,您可以创建一个静态构造函数,Buss手动调用Bus. 请注意,不可能多次运行静态构造函数。

  • 我意识到你所说的“错误”可能是指我的 OOP 已关闭。不过,我觉得能够继承静态成员(包括静态构造函数)实际上会更加面向对象。 (2认同)