这两段代码之间的区别是什么。 我想知道为什么他在第二个片段中使用了所有大量的代码,而他可以使用simple new来创建DataTable的实例;
1) var dt = new DataTable();
2) var dt = ObjectBuilder.Instance<DataTable>();
public class ObjectBuilder
{
#region ObjectBuilder Members
/// <summary>
/// Instances this instance.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static T Instance<T>() where T : class
{
return Activator.CreateInstance<T>();
}
/// <summary>
/// Instances the specified arguments.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="arguments">The arguments.</param>
/// <returns></returns>
public static T Instance<T>(params object[] arguments) where T : class
{
return (T)Activator.CreateInstance(typeof(T), arguments);
}
}
答案 0 :(得分:0)
第二个应该非常清楚。它会创建DataTable
类型的实例。
第一个也使用ObjectBuilder
组件。这是一个用于创建依赖注入系统的框架。它使用一系列策略,允许您自定义创建(和销毁)过程。例如,您可以自动为属性和字段分配值,或者根据成员上声明的属性执行各种操作。有关详细信息,请参阅Design of ObjectBuilder。