泛型 集合 堆栈 队列 哈希表 字典

小例子

/*
(1)创建小孩Baby类,实现ISpeak接口
(2)定义求面积的接口IArea与求体积的接口IVolumn,定义长方体类分别实现IArea与IVolumn接口
(3)定义接口IBattle,该接口包含功能Attack(),Move(),Jump();定义接口IRest,该接口包含功能SitDown(),Sleep()。定义接口IPlayer,接口IPlayer继承IBattle与IRest。定义Soldier类实现IPlayer接口
*///(1)创建小孩类 实现接口
class Baby : ISpeak
{//实现接口的方法public void Speak(){}
}
//接口
interface ISpeak{//接口里有个说话的方法void Speak();
}
//(2)
//求面积的接口
interface IArea{int GetArea(int x, int y);
}
//求体积的接口
interface IVolumn{int GetVolumn(int x, int y, int z);
}
//长方体类,实现两个接口
class Cube : IArea , IVolumn
{public int GetArea(int x, int y){return x * y;}public int GetVolumn(int x, int y, int z){return x * y * z;}
}
//(3)
interface IBattle{void Attack();void Move();void Jump();
}
interface IRest{void SitDown();void Sleep();
}
interface IPlayer : IBattle , IRest
{}

泛型

我们在编写程序时经常遇到两个模块的功能非常相似,只是因为参数类型不同,所以分别写多个方法处理每种数据类型,因为方法的参数类型不同没法重用同样功能的代码。

装箱可分为值类型与引用类型所有的鸡肋是object从其他的值类型 引用类型 转成 object 这个叫装箱举个例子int a = 7;object obj = a;
拆箱从 object 转成 其他的值类型 引用类型 这个叫拆箱float b = (float)obj;会出现装箱、拆箱操作,这将在托管堆上分配和回收大量的变量,若数据量大,则性能损失非常严重
在处理引用类型时,虽然没有装箱和拆箱操作,但将用到数据类型的强制转换操作,增加处理器的负担
Add(3,4);
Add(3,4);
Add(3f,4);
Add(3f,4);

泛型实现交换:

C#中的泛型能够将类型作为参数来传递,即在创建类型时用一个特定的符号如“T”来作为一个占位符,代替实际的类型,等待在实例化时再用一个实际的类型来代替:

public static void Swap(ref T value0, ref T value1)
{


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部