C# 写的一个泛型类和泛型方法示例

本文介绍了一个使用 C# 实现的泛型类和泛型方法的例子。通过两个不同的泛型类展示了如何根据不同类型的数据进行操作,并提供了一个泛型方法用于交换两个变量的值。文章还演示了如何实例化泛型类并调用泛型方法。

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

namespace Genericity
{
    class Program
    {
        //泛型类1:
        public class GenericityHello<T>
        {
            public void SayHello(T t)
            {
                Console.WriteLine(t.ToString());
            }
        }

        //泛型类2:
        public class GenericityHello1<T>
        {
            private T tt;

            public T TT
            {
                get
                {
                    return tt;
                }
                set
                {
                    tt = value;
                }
            }

            public void SayHello()
            {
                Console.WriteLine(tt.ToString());
            }
        }

        public class English
        {
            public override string ToString()
            {
                return "Hello!";
            }
        }

        public class Chinese
        {
            public override string ToString()
            {
                return "你好!";
            }
        }

        //泛型方法:
        public class Class3
        {
            public Class3()
            {
            }

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

        }

        static void Main(string[] args)
        {
            GenericityHello<English> gh1 = new GenericityHello<English>();
            English en = new English();
            gh1.SayHello(en);

            GenericityHello1<Chinese> gh2 = new GenericityHello1<Chinese>();
            Chinese cn = new Chinese();
            gh2.TT = cn;
            gh2.SayHello();

            //测试泛型方法:
            Console.WriteLine("交换2个对象:");
            string s1 = "sssssssss-1";
            string s2 = "sssssssss-2";
            Class3 cls3 = new Class3();
            cls3.Swap(ref s1, ref s2);
            Console.WriteLine("s1={0}, s2={1}", s1, s2);

            Console.ReadLine();
        }
    }
}

电脑学习网 http://www.why100000.com

张庆 2007.5.30

好的,我来为您介绍如何在C#编写一个数组类,并通过GetSet方法进行取值赋值: ```csharp public class GenericArray<T> { private T[] array; public GenericArray(int size) { array = new T[size]; } public T Get(int index) { if (index >= 0 && index < array.Length) { return array[index]; } else { throw new IndexOutOfRangeException("索引超出范围"); } } public void Set(int index, T value) { if (index >= 0 && index < array.Length) { array[index] = value; } else { throw new IndexOutOfRangeException("索引超出范围"); } } public int Length { get { return array.Length; } } } ``` 这个数组类的特点使用方法如下: 1. 使用参数T,使得这个数组类可以存储任意类的元素。 2. 构造函数接受一个整数参数,用于指定数组的大小。 3. Get方法用于获取指定索引位置的元素。如果索引超出范围,会抛出异常。 4. Set方法用于在指定索引位置设置元素。同样会检查索引范围。 5. 实现了Length属性,用于获取数组的长度。 使用示例: ```csharp GenericArray<int> intArray = new GenericArray<int>(5); intArray.Set(0, 10); intArray.Set(1, 20); Console.WriteLine(intArray.Get(0)); // 输出: 10 Console.WriteLine(intArray.Get(1)); // 输出: 20 GenericArray<string> stringArray = new GenericArray<string>(3); stringArray.Set(0, "Hello"); stringArray.Set(1, "World"); Console.WriteLine(stringArray.Get(0)); // 输出: Hello Console.WriteLine(stringArray.Get(1)); // 输出: World ``` 这个数组类提供了一种类安全且灵活的方式来处理数组,可以根据需要存储不同类的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值