C# 泛型类(函数)的实例化小例子

C# 提供了泛型类和泛型函数,它们可以适用于不同的数据类型,使代码更加灵活和可重用。本文将为大家详细介绍 C# 泛型类(函数)的实例化小例子。

泛型类的定义

泛型类是一种不特定的类,它能够适应许多不同类型的数据,具备以下语法结构:

class 类名<T>
{

    // 类的方法和属性代码

}

其中,T 是泛型类型参数,可以是任何标识符。通过这个参数,类可以适用于不同的数据类型。例如,下面的代码定义了一个泛型类 List,它可以存储任何数据类型的元素:

class List<T>
{
    private T[] items;
    private int count;

    public List()
    {
        items = new T[10];
        count = 0;
    }

    public void Add(T item)
    {
        if (count < items.Length)
        {
            items[count] = item;
            count++;
        }
    }

    public T Get(int index)
    {
        if (index < count)
        {
            return items[index];
        }
        else
        {
            throw new IndexOutOfRangeException();
        }
    }
}

泛型类的实例化

创建一个泛型类对象时,需要指定泛型类型参数的具体类型。例如,如果要创建一个 List<int> 类型的对象,可以使用 new 关键字和类型参数指定符号 <int>。示例代码如下:

List<int> intList = new List<int>();
intList.Add(1);
intList.Add(2);
intList.Add(3);

Console.WriteLine(intList.Get(0)); // 输出 1
Console.WriteLine(intList.Get(1)); // 输出 2
Console.WriteLine(intList.Get(2)); // 输出 3

上述代码创建一个 List<int> 类型的 intList 对象,并向其中添加了三个整型数据(1、2、3)。然后,使用 Get() 方法获取元素,并输出结果。

下面的代码示例创建一个 List<string> 类型的对象,并向其中添加了三个字符串数据("Hello"、"World"、"!"):

List<string> strList = new List<string>();
strList.Add("Hello");
strList.Add("World");
strList.Add("!");

Console.WriteLine(strList.Get(0)); // 输出 "Hello"
Console.WriteLine(strList.Get(1)); // 输出 "World"
Console.WriteLine(strList.Get(2)); // 输出 "!"

泛型函数的实例化

与泛型类类似,泛型函数也可以适用于许多不同类型的数据。泛型函数的语法结构如下:

public static 返回类型 函数名<T>(参数列表)
{
    // 函数代码
}

其中,T 是泛型类型参数,函数的参数和返回值可以是任何类型。例如,下面的示例代码定义了一个泛型函数 Swap(),它能够交换两个不同类型的变量的值:

public static void Swap<T>(ref T a, ref T b)
{
    T temp = a;
    a = b;
    b = temp;
}

使用以下代码示例,可以调用这个泛型函数,交换两个整型变量和两个字符串变量的值:

int a = 1, b = 2;
Console.WriteLine($"Swap before: a = {a} b = {b}"); // 输出 "Swap before: a = 1 b = 2"
Swap(ref a, ref b);
Console.WriteLine($"Swap after: a = {a} b = {b}"); // 输出 "Swap after: a = 2 b = 1"

string str1 = "Hello", str2 = "World";
Console.WriteLine($"Swap before: str1 = {str1} str2 = {str2}"); // 输出 "Swap before: str1 = Hello str2 = World"
Swap(ref str1, ref str2);
Console.WriteLine($"Swap after: str1 = {str1} str2 = {str2}"); // 输出 "Swap after: str1 = World str2 = Hello"

使用 Swap() 函数的关键是在调用函数时,指定正确的类型参数。在上面的调用中,我们分别使用了 intstring 作为类型参数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 泛型类(函数)的实例化小例子 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • C#异步方法返回void与Task的区别详解

    C#异步方法返回void与Task的区别详解 前言 在C#中使用异步方法,我们通常会使用async和await关键字,这些关键字使得异步编程看起来更加简单,但是如果对异步编程的底层原理不了解,就很容易用错异步方法的返回类型。本文将详细讲解C#异步方法返回void和Task的区别。 异步方法返回void的问题 在C#中,我们可以定义一个异步方法返回类型为voi…

    C# 2023年5月15日
    00
  • ASP.NET Core MVC 从入门到精通之wwwroot和客户端库

    随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,或其他想从事ASP.NET Core MVC 系统开发的人员。 经过前几篇文章的讲解,初步了解ASP.NET Core MVC项目创建,启…

    C# 2023年4月22日
    00
  • c# 将Datatable数据导出到Excel表格中

    下面是将Datatable数据导出到Excel表格中的完整攻略。 1. 准备工作 在开始操作之前,需要确保已经将NPOI引入到项目中。可以通过NuGet包管理器或手动下载NPOI工具包的方式引入。 2. 代码实现 在代码中需要引入以下命名空间: using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using…

    C# 2023年5月31日
    00
  • asp.net(C#)防sql注入组件的实现代码

    防止 SQL 注入攻击一直是 WEB 应用程序中的一个大问题。ASP.NET C# 是一个强大的技术框架,它也提供了多种方法来防止 SQL 注入攻击,其中一种方法是使用防 SQL 注入组件,我们可以编写一个可重复使用的防 SQL 注入组件,然后在应用程序中重复使用它。下面将介绍如何在 ASP.NET C# 中开发防 SQL 注入组件,以及代码示例。 防 SQ…

    C# 2023年6月3日
    00
  • C#简单实现子窗体向父窗体传值的方法

    C# 简单实现子窗体向父窗体传值有多种方法,下面介绍两种常用的方法。 方法一:使用属性 在子窗体中定义一个属性,用于存储需要传递的值。 public partial class ChildForm : Form { private string _value; public string Value { get { return _value; } set …

    C# 2023年6月6日
    00
  • C#异步下载文件

    当我们需要下载大型文件时,使用异步操作可以显著提高性能和效率。C#中提供了异步操作下载文件的方法,本篇攻略将介绍相关的知识点以及实现方法,包括异步下载文件的基本原理、实现步骤和两个具体的示例。 基本原理 异步下载文件的基本原理是将下载操作拆分成多个子任务,让操作系统去协调这些任务的执行,从而减小了主线程的负担,提高了程序的执行效率。具体实现方法是: 创建一个…

    C# 2023年6月1日
    00
  • c#中object、var和dynamic的区别小结

    针对这个问题,我整理了一份详细讲解“C#中Object、var和dynamic的区别”的攻略,下面是详细讲解: Object、var和dynamic的区别小结 在C#编程中,object、var和dynamic是三个常用的类型。虽然它们都可以存储任意类型的数据,但它们的行为却截然不同。 1. Object Object是C#中所有类型的基类,也是一个基本的数…

    C# 2023年5月15日
    00
  • ASP.NET MVC中两个配置文件的作用详解

    当我们使用ASP.NET MVC框架来开发一个网站时,我们需要先了解两个配置文件的作用,这些配置文件可以帮助我们更好地配置和管理应用程序。它们分别是Web.Config和RouteConfig.cs。 Web.Config Web.config文件是一个XML文件,它包含了ASP.NET应用程序的配置信息,包括应用程序的全局设置、数据库连接字符串、应用程序级…

    C# 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部