zoukankan      html  css  js  c++  java
  • C#初接触之C#泛型

            前段时间看别人的程序,对于classname<T>这种结构一直不大明白。今天看了C#泛型才明白,同时也看到了C#泛型的优点。下面我借用msdn上的例子:
            看一个常用的数据结构(Stack)                                           实例化
            public class Stack                                                                Stack stack = new Stack();
            {object[] m_Items;                                                               stack.Push(1);       
              public void Push(object item) {...}                                      int number = (int)stack.Pop();        
              public object Pop()   {...}
            }
            编译时任何类型都可以转换成object,因此就无法保证运行时的类型的安全性。有可能就会写下这样错误的代码:
            Stack stack = new Stack();
            stack.Push("test");
            int number = (int)stack.Pop();
            如果编写特定类型的数据结构,又会带来代码冗余,重用率低,而且一个数据结构的变更会带来所有类型的数据结构做相应的改变等不便。但是如果我们用C#泛型一切就相对方便多了。
             public class Stack <T>                                                                 Stack<int> stack = new Stack<int>();                 Stack<string> stack = new Stack<string>()
            {T[] m_Items;                                                                                stack.Push(1);                                                    stack.Push("test");
              public void Push(T item) {...}                                                       int number = stack.Pop();                                   string  str = stack.Pop();  
              public T Pop()   {...}
            }
            初学,理解的还不够深入,见笑了。
  • 相关阅读:
    集成学习
    逻辑斯谛回归
    【腾讯】【实习】【笔试】【数据分析师】2018.04.05
    C语言中scanf和printf的用法详解
    寻找一个数组中未出现的最小正整数(数组元素可重复)
    吃鸡问题中的的动态规划
    Coursera 深度学习 吴恩达 deep learning.ai 第三课 结构化机器学习项目 第二周 测试题目 Autonomous driving (case study)
    【转】P问题与NP问题详细解答加举例
    LeetCode 149. Max Points on a Line
    LeetCode 150. Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/noah/p/494628.html
Copyright © 2011-2022 走看看