1

Extended CSharp の LeMP v2.8.1 を使用しており、クラスのフィールドを定義および初期化するための次のショートカットがあります。

compileTimeAndRuntime 
{
    public partial class DI : IResolver
    {
        replace (T => ConcurrentDictionary<Type, Expression<Func<IResolver, object>>>) { public T Registrations = new T(); }
        replace (T => ConcurrentDictionary<Type, Func<IResolver, object>>) { public T DelegateCache = new T(); }
    }
}

public置換パターンは、修飾子と修飾子を除いて非常に似ていinternalます。しかし、それらを少しスキップしましょう。

私の質問は、パターンを繰り返す必要がないように、このreplaceパターンを 1 つのマクロに分解する方法があるということです。define

のようなものを試しましdefine New($T, $F) { $T $F = new $T(); }たが、 this のような Type 引数で使用するとエラーが発生しますNew(ConcurrentDictionary<Type, Expression<Func<IResolver, object>>>, Registrations)

4

1 に答える 1