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,相信难不倒你的。基础的东西真的很重要。想复习的朋友就跟我一步一步来复习吧。

  • 相关阅读:
    ios 正则表达式
    2016/2/26 jQuery的技术 1,安装 2,语法选择器$ 事件触发 3,常用jQuery函数
    2016/2/26 <marquee></marquee>实现多种滚动效果
    2016/2/25 onchange 应用
    2016/2/25 1、<表单验证<form></form> 2、正则表达式 3、事件
    2016/2/25 1, margin auto 垂直方向测试 无效 2,margin重叠 3,哪些是块状哪些是内联 4,display:block inline 导航栏把内联转块状最常见+ 扩展
    2016/2/25 html+css学习资源
    2016/2/24 css画三角形 border的上右下左的调整 以及内区域的无限变小 边界透明
    2016/2/24 1,css有几种引入方式 2,div除了可以声明id来控制,还可以声明什么控制? 3,如何让2个div,并排显示。4,清除浮动 clear:left / right / both
    2016/2/24 1,dotctype有几种? 2,了解html的发展历史
  • 原文地址:https://www.cnblogs.com/danyingjie/p/1965598.html
Copyright © 2011-2022 走看看