泛型类 泛型方法
来源:互联网 发布:手机淘宝在哪开店 编辑:程序博客网 时间:2024/06/08 15:11
简单地说,泛型用于解决以往采用object通用类型来支持所有类型的不足。采用object类型还需要进行强制转换,且往往会导致数据存储不容控制。而泛型解决了这一问题。
泛型类型参数:类型参数T是定义泛型类的时候的一个点位符,注意:T并不是一种类型,它仅表示某种可能的类型。在使用时,T出现的位置可以使用任何类型来替代。下面看一个很简单的泛型示例代码:
using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;
namespace Zhnet
{
class Program
{
static void Main()
{
T_Class<CN_Class> Output1 = new T_Class<CN_Class>();
Output1.SayPlay();
T_Class<EN_Class> Output2 = new T_Class<EN_Class>();
Output2.SayPlay();
}
}
///定义一个泛型类
public class T_Class<T>
{
public T_Class()
{
//
}
public void SayPlay()
{
T S = new T();
S.Show();
}
}
///说中文
public class CN_Class
{
public CN_Class()
{
//
}
public void Show()
{
Console.WriteLine("哈哈!");
}
}
///说英文
public class EN_Class
{
public EN_Class
{
//
}
///说英文
public Show()
{
Console.WriteLine("hoho");
}
}
}
以上代码没有调试过,只是说明一下意思。
泛型的限制:C#中进以对泛型参数T进行限制,这样就可以限制实便化泛型类时可能使用到的类型。通过where类键字来限制泛型。如下:
public class MyClass<T> where T : Form
{
........
}
泛型接口:同定义泛型类一样,可以定义泛型接口。方法如下:
interface IMyInterface<T>
{
........
}
其参数可以不止一种,如下:
interface IMyInterface<T, Y>
{
.................
}
泛型接口的使用与泛型类雷同,这里就不多说了。
泛型方法:同样也可以定义泛型方法请看下方法
public string getArrayString<T>(T[] A)
{
string ReturnValue = string.Empty;
foreach(T items in A)
{
ReturnValue += items;
}
return ReturnValue;
}
类的重载:同方法一样,类也可以进行重载。泛型类和普通类形式上的差异就在于,泛型类后紧跟了一个<T>。正是这个T可以使类进行重载。
泛型类和普通类一样,也可以继承。这里就中多说了。
泛型结构:结构体中同样可以应用泛型的思想,C#对它也一样支持看下代码:
struct MyStruct<T>
{
public MyStruct()
{
Console.WriteLine("创建一MyStruct泛型结构");
}
}
- 泛型类 泛型方法
- 泛型类 泛型方法
- 泛型类 泛型方法
- 泛型类/泛型方法
- 泛型类和泛型方法
- 泛型类和泛型方法
- java 泛型方法 泛型类
- 泛型类,泛型方法,泛型委托的定义方法
- 泛型方法、泛型类、泛型接口
- 关于泛型类和泛型方法
- 泛型类和泛型方法使用示例
- JAVA泛型类和泛型方法
- 泛型类和泛型方法示例
- Java自定义泛型类和泛型方法
- 通过泛型方法返回泛型类实例
- 泛型(二)泛型类、泛型方法
- 泛型类、泛型方法、边界设定
- 泛型类,泛型方法,dynamic, default
- json convert to string
- oracle 数据恢复
- 发送请求JSON解析自带
- iOS - 开发中的一些小技巧:
- 精简的 递归 汉诺塔 3个以上的盘子理解起来真难啊!!!
- 泛型类 泛型方法
- Mac OS将就整个文件夹中的资源编译了.APP文件中
- 按照要求的输入输出格式进行日期字符串的转化
- [JavaScript] 兼容IE、FireFox、Chrome等浏览器的xml处理函数(xml同步/异步加载、xsl转换、selectSingleNode、selectNodes)
- 双击dhtmlgrid行,openwin方法弹出层,并传参到弹出层页面
- Android中应用程序之间的数据共享
- IOS7 UIPickerView
- DB基本概念之 --- 触发器
- Deep Learning in NLP (一)词向量和语言模型