zoukankan      html  css  js  c++  java
  • c#基础(1) 理解泛型

    最近在看jimmyzhang的文章,把自己所想到的东西记录下来,权当笔记。

    首先说一下泛型的好处:极大的减少了重复代码,使我们的程序更加清爽,泛型类相当于一个模板,可以在需要时为这个模板传入我们想要的类型。

    首先我们需要看一个 C#实现一个比较简单的冒泡排序

            public void maopao(int[] array)
            {
                
    int length = array.Length;
                
    for (int i = 0; i <length; i++)
                {
                    
    for (int j = i + 1; j < length; j++)
                    {
                       
                        
    if (array[i]>array[j])
                        {
                            
    int temp = array[i];
                            array[i] 
    = array[j];
                            array[j] 
    = temp;

                        }
                    }
                }
            }

    好,我们很容易的就实现了对整型数组的冒泡排序,如果某一天我们想实现对string[]数组的排序呢?相信大家已经想到了,再复制一遍代码 把参数类型改成string

    ,那么很好,这个要求我们也很容易的实现了,如果说还有其他类型呢?所以这里就需要泛型了。刚才我们针对的都是简单类型,现在我们引入一个类book,为了方便我们就给它2个属性 id  title,并实现了 icomparable接口的compareto方法

    public class book : IComparable
        {
            
    public book() { }


            
    private int id;
            
    private string title;


            
    public book(int id, string title)
            {
                
    this.id = id;
                
    this.title = title;
            }

            
    public int Id
            {
                
    get { return id; }
                
    set { id = value; }

            }

            
    public string Title
            {
                
    get
                {
                    
    return title;
                }
                
    set
                {
                    title 
    = value;
                }
            }

            
    public int CompareTo(object obj)
            {
                book book2 
    = (book)obj;
                
    return this.id.CompareTo(book2.id);
            }
        }

    然后我们在main里面 创建一个book的实例  然后 给book数组赋值

                book[] bookarray = new book[2];
                book book1 = new book(123"测试书籍1");//创建book1  book2实例
                book book2 = new book(456"测试书籍2");
                bookarray[
    0= book1;//赋值
                bookarray[1= book2;
                jisuan myjisuan 
    = new jisuan();
                myjisuan.maopao(bookarray);
                
    foreach (book bk1 in bookarray)
                {
                    Console.WriteLine(bk1.Id 
    + "" + bk1.Title);
                    
                }
                Console.Read();

    到此  我们简单的接触了泛型,其实在book里 我们也可以实现一个 泛型接口 然后 用List.sort()方法进行比较。有兴趣的朋友可以MSDN,相信难不倒你的。基础的东西真的很重要。想复习的朋友就跟我一步一步来复习吧。

  • 相关阅读:
    织梦当前位置去除最后字符
    一霎清明雨,实现考勤管理。
    浅谈:C#中的非泛型集合
    简述结构和类的区别
    项目经理评分系统
    那些年我们一起~做过的魔兽系统
    浅谈:什么是.NET
    MyKTV系统项目的感想
    开发“航班查询及预定”系统
    java面试的一些问题
  • 原文地址:https://www.cnblogs.com/danyingjie/p/1965598.html
Copyright © 2011-2022 走看看