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)
。