1、pageTool.cs
Code
public static T Get<T>()//singleton
{
if (HttpContext.Current.Items[typeof(T).AssemblyQualifiedName] == null)
HttpContext.Current.Items[typeof(T).AssemblyQualifiedName] = Activator.CreateInstance<T>();
return (T)HttpContext.Current.Items[typeof(T).AssemblyQualifiedName];
}
public static T Get<T>()//singleton
{
if (HttpContext.Current.Items[typeof(T).AssemblyQualifiedName] == null)
HttpContext.Current.Items[typeof(T).AssemblyQualifiedName] = Activator.CreateInstance<T>();
return (T)HttpContext.Current.Items[typeof(T).AssemblyQualifiedName];
}
2、test.aspx.cs
TestDataContext test
=
PageTool.Get
<
TestDataContext
>
();
这是调用的代码,得到一个TestDataContext的类型,就实现了新建TestDataContext的实例。
好处在于:
当我们需要在多个方法中调用该类型时,需要不停地实例化,这样就给系统带来了开销,上一个ListView实例中,我直接新建了TestDataContext的实体,这样顶多就是降低了代码量,但是反而给系统带来负担,因为有的方法不需要这样的实例。所以又方便又能节约系统资源和提高系统性能的解决方案是:
建立泛型,泛型是c#2.0的一个新增加的特性,它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。它允许程序员将一个实际的数据类型的规约延迟至泛型的实例被创建时才确定。泛型为开发者提供了一种高性能的编程方式,能够提高代码的重用性,并允许开发者编写非常优雅的解决方案。