zoukankan      html  css  js  c++  java
  • 我终于用到了泛型

     

    我终于用到了泛型

    左直拳

    泛型是。NET20出现的新东西。惭愧,30已经出了很久了,可我现在才开始用。落后啊落后,简直屎一堆。

    delegate void SetEnableCallback(System.Windows.Forms.Control objCtrl, bool enable);

     

    //声明

    private void _SetText<TObject>(TObject objCtrl, string text)

    where TObject : System.Windows.Forms.Control

    {

    if (objCtrl.InvokeRequired)

       {

           SetTextCallback d = new SetTextCallback(_SetText);

           this.Invoke(d, new object[] { objCtrl, text });

       }

       else

       {

           objCtrl.Text = text;

       }

    }

     

    //调用

    public int TotalNum

    {

    set { _SetText<TextBox>(this.txt_Total, value.ToString()); }

    }

     

    在声明里面,之所以要限定TObject的类型为窗体控件

    where TObject : System.Windows.Forms.Control

    是因为不如此,就无法使用象objCtrl.InvokeRequired这些只有窗体控件才会用到的语句。

    本来我象是限定为TextBoxButton类型的,语句如下:

    private void _SetText<TObject>(TObject objCtrl, string text)

    where TObject : TextBox,Button

    但这样始终编译不过去,说是一山不容二虎,类类型只能排在前面,将TextBox排在前面,说Button错;将Button排在前面,说TextBox错。真不知道为什么会有这样的规定。最后只好将它们限定为父类型:Control

     

    泛型的好处是可以写出适应性极好的代码。据说效率很高,没有类型转换、装箱拆箱带来的性能损失。

    大江东去,浪淘尽,

    千古风流人物。

    故垒西边,人道是,

    三国周郎赤壁。

    乱石穿空,惊涛拍岸,

    卷起千堆屎。

  • 相关阅读:
    卡顿检测
    FPS检测
    当检测到慢函数时,会在后台线程完成慢函数的分析
    慢函数检测
    对于没有复现onWindowFocusChange方法的Activity子类,插入一个onWindowFocusChange方法
    将totalCost用insurance的set方法set到保险总费用的字段中,然后进行插入操作。代码如下
    XML基础学习02<linq to xml>
    XML基础学习01
    Ajax学习记录
    数据迁移
  • 原文地址:https://www.cnblogs.com/leftfist/p/4258300.html
Copyright © 2011-2022 走看看