泛型方法

在非泛型类中使用泛型方法


SortHelper.cs(非泛型类)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BubbleSort
{
    class SortHelper    //定义实现冒泡排序算法的类
    {
        public void BubbleSort<T>(T[] array)where T :IComparable
        {
            //where T :IComparable是为了使用Icomparable接口的CompareTo方法比较大小
            int length = array.Length;
            for(int i=0;i<=length-2;i++)
            {
                for(int j=length-1;j>=1;j--)
                {
                    if(array[j].CompareTo(array[j-1])<0)
                    {
                        //如果前面的元素较大,交互相邻两个元素
                        T temp = array[j];
                        array[j] = array[j - 1];
                        array[j - 1] = temp;
                    }
                }
            }
        }
    }
}

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BubbleSort
{
    class Program
    {
        static void Main(string[] args)
        {
            SortHelper sorter = new SortHelper();
            int[] array = { 8, 2, 4, 6 };
            sorter.BubbleSort<int>(array);//此时指明了参数类型为int型
            foreach(int i in array)
            {
                Console.Write("{0} ", i);
            }
            Console.Read();
        }
    }
}

泛型类中的泛型方法


SortHelper.cs(泛型类)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BubbleSort
{
    class SortHelper<T> where T : IComparable    
    {
        public void BubbleSort(T[] array)
        {
            //where T :IComparable是为了使用Icomparable接口的CompareTo方法比较大小
            int length = array.Length;
            for(int i=0;i<=length-2;i++)
            {
                for(int j=length-1;j>=1;j--)
                {
                    if(array[j].CompareTo(array[j-1])<0)
                    {
                        //如果前面的元素较大,交互相邻两个元素
                        T temp = array[j];
                        array[j] = array[j - 1];
                        array[j - 1] = temp;
                    }
                }
            }
        }
    }
}

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BubbleSort
{
    class Program
    {
        static void Main(string[] args)
        {
            SortHelper<int> sorter = new SortHelper<int>();
            int[] array = { 8, 2, 4, 6 };
            sorter.BubbleSort(array);  //此时确定类型为int型
            foreach(int i in array)
            {
                Console.Write("{0} ", i);
            }
            Console.Read();
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值