一般的な方法で新しいオブジェクトを作成するための次のコードがあります。
var user = User.Create<User>(c => c.Name = "321X");
私が気に入らないのは、作成呼び出しごとに「一般的な表記法」 <T> を渡す必要があるという事実です。結局、私はすでに参照しているオブジェクトを作成します...
この現在の機能の背後にあるコードは次のとおりです。
public class User : CreateBase
{
public string Name { get; set; }
}
public abstract class CreateBase
{
public DateTime CreateDate { get; set; }
public Guid Guid { get; set; }
public static T Create<T>(Action<T> init) where T : CreateBase, new()
{
T obj = new T();
obj.Guid = Guid.NewGuid();
obj.DateTime = DateTime.Now;
init(obj);
return obj;
}
}
私のコードをこれにリファクタリングしてオブジェクトを作成することは可能ですか (そしてどのように)?
var user = User.Create(c => c.Name = "321X");
ありがとう!