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#9 中使用顶级程序 (top-level)

    在C#9中,新增了顶级程序 (top-level) 的特性,使得我们可以更加便捷地编写和运行单个C#的文件。下面是如何使用顶级程序的完整攻略。 创建顶级程序 在C#9中,我们只需要创建一个.cs文件,然后在其中添加代码即可创建一个顶级程序。相比传统的C#程序需要创建类、命名空间等多重结构,顶级程序使用起来更加简单。 using System; Console…

    C# 2023年6月6日
    00
  • 谈谈c#中的索引器

    让我为你详细讲解C#中的索引器。 什么是索引器? 索引器是一种特殊的属性,它允许类或结构体的实例像数组一样被索引。在C#中,索引器通常被称为“下标器”。 一个索引器包含一个索引器参数和一个或多个访问器,用于读取或写入该类或结构体的属性。 创建索引器 C#中的索引器可以使用this关键字来创建。以下是一个简单的示例: public class MyClass …

    C# 2023年6月7日
    00
  • C# TabControl控件中TabPage选项卡切换时的触发事件问题

    C#的TabControl控件中,TabPage选项卡的切换可以由用户手动点击或者程序动态切换两种方式触发,对应的事件就是TabControl的SelectedIndexChanged事件。下面将详细讲解如何在C#中处理TabControl控件中TabPage选项卡切换的问题。 监听TabControl的SelectedIndexChanged事件 当用户手…

    C# 2023年5月15日
    00
  • C# File.WriteAllText()方法: 将指定的字符串写入文件,覆盖文件中的所有内容

    File.WriteAllText() 是C#中的一个静态方法,主要作用是向文件写入文本并替换文件内容。它的使用方法如下: File.WriteAllText(string path, string contents); 其中,path参数是要写入的文件路径;contents参数是要写入的文本内容。 下面通过两个例子来详细讲解 File.WriteAllTe…

    C# 2023年4月19日
    00
  • C#判断字符串是否存在字母及字符串中字符的替换实例

    C#判断字符串是否存在字母及字符串中字符的替换实例 判断字符串是否存在字母 对于判断字符串中是否存在字母,可以使用正则表达式来实现。具体步骤如下: 引入正则表达式命名空间using System.Text.RegularExpressions; 使用正则表达式[a-zA-Z]匹配字符串中是否存在字母 判断匹配结果是否成功 下面是一个示例代码: using S…

    C# 2023年6月8日
    00
  • C# DataTable中查询指定字段名称的数据

    我来给你讲解一下如何在C# DataTable中查询指定字段名称的数据。 准备工作 在进行查询操作前,需要确保已经成功创建了DataTable对象并添加数据。我这里就简单演示一下的创建一个DataTable,并给它添加两列数据: DataTable dt = new DataTable(); dt.Columns.Add("Name", …

    C# 2023年6月7日
    00
  • C# String.EndsWith()方法: 检查字符串是否以指定的后缀结尾

    String.EndsWith()是C#中用于判断字符串是否以指定的字符串结尾的方法。该方法的定义如下: public bool EndsWith(string value); 其中,参数value表示要比较的字符串。该方法会将当前字符串与指定的字符串进行比较,如果当前字符串以指定的字符串结尾,则返回true,否则返回false。 下面分别通过两个实例来说明…

    C# 2023年4月19日
    00
  • asp.net(C#)实现功能强大的时间日期处理类完整实例

    asp.net(C#)实现功能强大的时间日期处理类完整实例 引言 在程序开发过程中,日期和时间处理是非常常见且重要的操作,然而C#在对时间日期的处理上提供了很多内置的功能和类,但是并不一定适合所有的场景。因此,本文介绍如何实现功能强大的时间日期处理类,让我们的开发变得更加高效。 步骤 创建一个新的C#类,在类中定义所需要的方法和变量。 “`csharp p…

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