左直拳的马桶_日用桶

我可以把手按在马桶盖上发誓:所有的文章都是我自己屙的

我终于用到了泛型

 

我终于用到了泛型

左直拳

泛型是。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

 

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

大江东去,浪淘尽,

千古风流人物。

故垒西边,人道是,

三国周郎赤壁。

乱石穿空,惊涛拍岸,

卷起千堆屎。

阅读更多
版权声明:本文为博主原屙文章,喜欢你就担走。 https://blog.csdn.net/leftfist/article/details/1593477
个人分类: .NET
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭