c# 泛型

本文介绍了C#中泛型的概念及其优势,包括提高代码重用、类型安全和性能。示例展示了如何在方法中使用泛型约束,并通过`ProcessItems`方法处理数组和列表,演示了泛型在处理不同类型数据时的灵活性。同时,代码还揭示了泛型在不同类型的集合上操作时的行为差异,如`IsReadOnly`属性的返回值和尝试调用`RemoveAt`方法的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;
using System.Collections.Generic;
using System.Text;

//泛型允许编写一个可以与任何数据类型一起工作的类或方法。
//使用泛型可以提高代码重用性,类型安全性和性能。

//泛型约束

namespace ConsoleApp1
{
    //class Generic
    //{
    //    static void Main()
    //    {
    //        GenericLlist<int> list1 = new GenericLlist<int>();
    //        list1.Add(318);
    //        GenericLlist<string> list2 = new GenericLlist<string>();
    //        list2.Add("一路向北");
    //    }
    //}

    //public class GenericLlist<T>
    //{
    //    public void Add(T input) {
    //        Console.WriteLine(input);
    //    }
    //}
    class Generic
    {
        static void Main()
        {
            int[] arr = { 0, 1, 2, 3, 4 };
            List<int> list = new List<int>();

            for (int x = 5; x < 10; x++)
            {
                list.Add(x);
            }

            ProcessItems<int>(arr);
            ProcessItems<int>(list);
            Console.Read();

        }
        static void ProcessItems<T>(IList<T> coll)
        {
            // IsReadOnly对于数组返回True,对于列表返回False。
            System.Console.WriteLine
                ("IsReadOnly returns {0} for this collection.",
                coll.IsReadOnly);

            // 下面的语句会导致数组的运行时异常,但不会导致列表的运行时异常。
            //coll.RemoveAt(4);

            foreach (T item in coll)
            {
                System.Console.Write(item.ToString() + " ");
            }
            System.Console.WriteLine();
        }
    }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值