.net 数据结构与算法基础:泛型编程、时间测试
来源:互联网 发布:明底线知敬畏懂感恩 编辑:程序博客网 时间:2024/05/25 21:35
泛型编程:
问题提出:
面向对象编程存在一个众所周知的问题:“代码膨胀”,对于方法或方法集合,为了说明其所有可能的返回类型需要进行多次冗余性编写,例如:对于一个值交换函数,函数处理值可能为字符型,也可能为整数型,或是浮点型,那么为满足不同功能需要不断重写相同功能代码,为解决此问题,我们提出了泛型编程。
解决方法:
泛型类型提供占位符<>,在括号内填充特定的数值类型完成函数计算,具体示例如下:
static void swap<T>(ref T var1, ref T var2)
{
T TEMP;
TEMP = var1;
var1 = var2;
var2 = TEMP;
}
static void Main(string[] args)
{
int num1 = 9;
int num2 = 25;
Console.WriteLine("交换前: num1:" + num1.ToString() + " num2:" + num2.ToString());
swap<int>(ref num1,ref num2);
Console.WriteLine(" num1:" + num1.ToString() + " num2:" + num2.ToString());
string str1 = "GAO";
string str2 = "XIANG";
Console.WriteLine("交换前: str1:" + str1 + " str2:" + str2);
swap<string>(ref str1, ref str2);
Console.WriteLine(" str1:" + str1 + " str2:" + str2);
Console.ReadLine();
}
程序结果:
时间测试:
{
TimeSpan duration;
public TimeTest()
{
duration = new TimeSpan(0);
}
public void start()
{
GC.Collect();
GC.WaitForPendingFinalizers();
}
public void stop()
{
duration = Process.GetCurrentProcess().TotalProcessorTime;
}
public TimeSpan result()
{
return duration;
}
}
{
for (int i = 0; i < num.GetUpperBound(0); i++)
{
Console.Write(num[i] + " ");
}
}
private static void Builearray(int[] num)
{
for (int i = 0; i < num.GetUpperBound(0); i++)
{
num[i++] = i * i;
}
}
- .net 数据结构与算法基础:泛型编程、时间测试
- .net 数据结构与算法基础:Hashtable
- .net 数据结构与算法基础:泛型链表使用
- .net 数据结构与算法基础:二叉树
- .net 数据结构与算法基础:高级排序
- 编程基础之 数据结构与算法
- 数据结构与算法基础
- 数据结构与算法基础
- 基础数据结构与算法
- 数据结构与算法基础
- .net 数据结构与算法基础:图的操作
- 数据结构与算法 -- 时间复杂度
- 数据结构基础篇(2)--算法时间复杂度
- 数据结构之算法与算法时间复杂度
- 算法与数据结构 其一 算法时间复杂度
- 【数据结构与算法基础】序
- 数据结构与算法基础1
- 数据结构与算法基础总结
- 【实例】赵雅智_购物车(3)添加总价
- Android Framework architecture -- bluez(2)
- JavaSE第二十九讲:String类源代码深剖析
- Smary_2
- 虚函数的实现机制
- .net 数据结构与算法基础:泛型编程、时间测试
- 广州沙龙 - 《从无到有,构建自动化测试体系!》接受报名中
- Uva 11039(排序+模拟)
- EQEP输入引脚
- Android Framework architecture -- bluez(1)
- 关于UIScrollViewDelegate协议中每个回调函数的
- 回合制游戏-------------------------------------------起步(三)
- 正交解码单元
- 批量删除win7下的隧道适配器