SIKI学习——C#中级教程_14泛型类的定义

1.泛型类的定义

1.泛型是什么?
通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用。

2.泛型类定义
定义一个泛型类就是指的是,定义一个类,这个类中某些字段的类型是不确定的,这些类型可以在类构造的时候确定下来,举例:
创建一个类处理int类型和double类型的相加
class ClassA< T >
{
private T a;
private T b;
public ClassA(T a,T b)
{
this.a = a ;
this.b = b;
}
public string GetSum()
{
return a+“”+b;
}
}
例子:

namespace 泛型和泛型类
{
    class Program
    {
        static void Main(string[] args)
        {
            var o1 = new ClassA<int>(12,34);//当我们利用泛型类构造的时候,需要指定泛型的类型
            string s = o1.GetSum();
            Console.WriteLine(s);
            Console.ReadKey();
        }
    }
}
namespace 泛型和泛型类
{
    class Program
    {
        static void Main(string[] args)
        {
            var o2 = new ClassA<string>("wwww","xuexi.com");
            Console.WriteLine(o2.GetSum());
            Console.ReadKey();
        }
    }
}

2.泛型方法

定义泛型方法就是定义一个方法,这个方法的参数的类型可以是不确定的,当调用这个方法的时候再去确定方法的参数的类型。
实现任意类型组拼成字符串的方法
public static T GetSum< T >(T a,T b)
{
return a+""+b;
}
GetSum< int >(23,12);
GetSum< double >(23.2,12);

例子1:

namespace 泛型方法
{
    class Program
    {
        public static string GetSum<T>(T a, T b)
        {
            return a + "" + b;
        }
        static void Main(string[] args)
        {
            Console.WriteLine(GetSum(12,34));
            Console.WriteLine(GetSum(12.3,34.5));
            Console.WriteLine(GetSum("xuexi","haonan"));
            Console.ReadKey();
        }
    }
}

例子2:

namespace 泛型和泛型类
{
    class ClassA<T,A>//(两个类型)T代表一个数据类型,当时用ClassA进行构造的时候,需要制定T的类型
    {
        private T a;
        private T b;
        private A c;
        public ClassA(T a, T b)
        {
            this.a = a;
            this.b = b;
        }
        public string GetSum()
        {
            return a +""+ b;
        }
    }
}
namespace 泛型和泛型类
{
    class Program
    {
        static void Main(string[] args)
        {
            var o2 = new ClassA<string,int>("wwww","xuexi.com");//<string,int>后边的int是为我们定义的A指定类型
            Console.WriteLine(o2.GetSum());
            Console.ReadKey();
        }
    }
}

例子3:

namespace 泛型方法
{
    class Program
    {
        public static string GetSum<T,T2,T3,T4>(T a, T b)
        {
            return a + "" + b;
        }
        static void Main(string[] args)
        {
            Console.WriteLine(GetSum<int,int,int,int>(12,34));
            Console.WriteLine(GetSum<double,double,double,double>(12.3,34.5));
            Console.WriteLine(GetSum<string,string,string,string>("xuexi","haonan"));
            Console.ReadKey();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值