我有这段代码可以以通用方式创建新对象:
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");
谢谢!