0
点赞
收藏
分享

微信扫一扫

C#中的泛型

祈澈菇凉 2022-02-27 阅读 66

在编写程序时,经常会用到两个功能模块非常相似,只不过是一个处理int数据,另一个处理string数据,或者其他数据。如果没有泛型的特性,我们只能定义两个方法来处理,因为参数的类型是不一样的。泛型就是用来解决这一类问题的。我们通过一种通用的数据类型,让方法保持一致,这样就只用一个方法即可。

泛型类和泛型方法同时具备可重用性、类型安全和高效率,这是非泛型类和方法不具备的特性。泛型通常用在集合在集合上的运行的方法中。这些集合所在的命名空间System.Collections.Generic

所以定义一个Node类型,表示链表这种数据结构中的一个节点。由于这个节点中存储的数据不是确定的,而可能是任意一种数据类型,因此可以用泛型来定义这种数据。

public class Node<T>
{
	public Node(T t)
	{
		next = null;
		data = t;
	}
	private Node<T> Next
	{
		get { return next }
		set { next = value }
	}

	private T data;
	public T Data
	{
		get { return data; }
		set { next = value; }
	}

	private T data;
	public T data
	{
		get { return data; }
		set { data = value; }
	}
}

public class GenericDemo : MonoBehaviour 
{
	private void Start()
	{
		Node<int> intNode = new Node<int>(13);
		Node<bool> boolNode = new<bool>(false);
		Node<string> stringNode = new Node<string>("Geekanr");
	}
}

总结:

对Node中的数据data使用泛型来表示。在Start()方法中看到,定义Node的对象的时候,需要确定Node中所存储的数据类型。由于在定义的时候data的类型已经确定了,因此就不存在类型转换、装箱、拆箱等问题,因此泛型是类型安全高效的。

举报

相关推荐

0 条评论