易截截图软件、单文件、免安装、纯绿色、仅160KB

C#用泛型,使程序更灵活,也更省性能

先声明,我不是这方面的专家,只是干软件四个月不知天有多高地有多硬的小孩子
首先,类型转换是有一定开销的
我试过这样的代码:这是一个控制台应用程序的Program类的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 类型转换的开销
{
class Program
{
static void Main(string[] args)
{
DateTime now = DateTime.Now;
for (int i = 0; i < 10000000; i++)
{
I a = new A();
((A)a).M();
}
Console.WriteLine(DateTime.Now - now);
now = DateTime.Now;
for (int i = 0; i < 10000000; i++)
{
A a = new A();
a.M();
}
Console.WriteLine(DateTime.Now - now);
}
}
interface I
{
string M();
}
class A : I
{
public string M()
{
return "MA";
}
}
class B : I
{
public string M()
{
return "MB";
}
}
}
 
运行的结果是这样:
00:00:00.3125000
00:00:00.2187500
请按任意键继续. . .
一亿次,就要多用0.1秒钟
我的机子是 CPU 2.7GHz双核, 2G内存
所以,为了这么细小的东西,我平时写代码,也尽量省得就省。
泛型我用得很多,不过都没有深入去学。不过最近在研究过,泛型都可以实例化,这给编程带来很大的方便。
同样试试下面的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 类型转换的开销
{
class Program
{
static void Main(string[] args)
{
A<B> a = new A<B>();
DateTime now = DateTime.Now;
for (int i = 0; i < 1000000; i++)
{
a.M().M();
}
Console.WriteLine("用了泛型的时间:" + (DateTime.Now - now));
now = DateTime.Now;
for (int i = 0; i < 1000000; i++)
{


相关文档:

asp.net(c#)从Cache对象删除项(学习日记二)

上篇文章中说到什么是 Cache对象,如何在ASP.NET中使用 Cache对象。下面我们来说说如何在ASP.NET中删除项。
ASP.NET Cache 对象设计用于保证它并不使用过多的服务器内存。结果是,当用内存变得缺乏时,Cache对象自动删除最少被使用的项。你可以通过定义时间限制、依赖项、以及项
在Cache对象中的优先级来影响 Cache对象保 ......

C#创建XML

1 using System;
 2 using System.Collections;
 3 using System.Configuration;
 4 using System.Data;
 5 using System.Linq;
 6 using System.Web;
 7 using System.Web.Security;
 8 using&nbs ......

C#后台调用前台javascript的五种方法


由于项目需要,用到其他项目组用VC开发的组件,在web后台代码无法访问这个组件,所以只好通过后台调用前台的javascript,从而操作这个组件。在网上找了找,发现有三种方法可以访问到前台代码:
第一种,OnClientClick    (vs2003不支持这个方法)
<asp:Button ID="Button1" runat="se ......

C#中结构与类的区别

一.类与结构的示例比较:
结构示例:
public struct Person
{
string Name;
int height;
int weight
public bool overWeight()
{
//implement something
}
}
类示例:
public class TestTime
{
int hours;
int minutes;
int seconds;
public void passtime()
{
//implementation ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号