我终于用到了泛型
左直拳
泛型是。NET2。0出现的新东西。惭愧,3。0已经出了很久了,可我现在才开始用。落后啊落后,简直屎一堆。
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这些只有窗体控件才会用到的语句。
本来我象是限定为TextBox,Button类型的,语句如下:
private void _SetText<TObject>(TObject objCtrl, string text)
where TObject : TextBox,Button
但这样始终编译不过去,说是一山不容二虎,类类型只能排在前面,将TextBox排在前面,说Button错;将Button排在前面,说TextBox错。真不知道为什么会有这样的规定。最后只好将它们限定为父类型:Control。
泛型的好处是可以写出适应性极好的代码。据说效率很高,没有类型转换、装箱拆箱带来的性能损失。
大江东去,浪淘尽,
千古风流人物。
故垒西边,人道是,
三国周郎赤壁。
乱石穿空,惊涛拍岸,
卷起千堆屎。
分享到:
相关推荐
4. **谨慎使用泛型数组**:尽管在某些场景下可能需要用到泛型数组,但由于其潜在的风险(如类型擦除),应谨慎考虑是否使用。 通过对 Java 泛型数组的理解及其限制的深入探讨,我们可以更好地掌握 Java 泛型的使用...
在解决“老师找学生”的问题时,我们可能需要用到C#的搜索、排序等算法。比如,可以使用泛型集合的Sort()方法对学生成绩进行排序,或者利用Linq(Language Integrated Query)来筛选出特定条件的学生。此外,数组和...
8. `LinkedListNode<T>`:这是`LinkedList<T>`中的节点类,通常不需要直接使用,但在需要访问链表内部结构时可能会用到。 了解了这些基础类型后,我们需要掌握如何声明、初始化和操作泛型集合。例如,创建一个`List...
在C#开发中,必不可少的要用到泛型。泛型是.NET2.0版本就有的,它广泛应用于C#框架中容器的使用中。下面我们来详细介绍一下。 一、泛型的主要优势 1.性能更高。 2.类型更安全。 3.代码更多的重用和扩展性。 ...
上篇文章给大家介绍了浅析C# 中的类型系统(值类型和引用类型),接下来通过本文给大家介绍下c# 泛型类型, 说下C#中的泛型,熟练地使用泛型能提高代码的重用性,使用我们代码瞬间就高大上了,当然只有一点点,真的...
在Java中,通常会用到JDBC的Statement或PreparedStatement的setFirstResult和setMaxResults方法来实现分页。 在这个"ReflectSplictPage"实现中,可能采用了以下策略: 1. **泛型接口或类**:定义一个泛型接口或类...
本文将详细介绍如何在C++中进行JSON文件的读写操作,特别是利用只引用头文件的方式,并且提供泛型接口,使得操作更加简便。 首先,我们需要一个C++库来处理JSON,例如nlohmann/json。这个库的特点是仅需包含头文件...
有一种适配器写法,可以做到一个适配器与多种类型数据和布局进行适配,这个东西叫做通用适配器(因为他是用到泛型实现的,我称他为泛型适配器),今天我们来看一下这种适配器的写法: 在写之前呢,我们首先回忆一下...
本资源包“java基础(多线程,IO,集合,网络编程,泛型)”提供了对Java核心技术的全面介绍,包括五个核心主题:多线程、输入/输出(IO)、集合框架、网络编程和泛型。以下是对这些主题的详细讲解: 1. **多线程**: - ...
在平常写代码用到泛型时,仿佛一切都来得如此理所当然。但其实Java泛型还是有挺多tricky的东西的,编译器在背后为我们做了很多事。下面我们来看看有关Java泛型容易忽视的点。 泛型不支持协变 什么是协变?举个...
非常方便的datatable类型与List泛型实体对象集合的互相转换,在面向对象的开发中,经常会用到的,如使用上不懂可以咨询我
在程序中,只要用到了带有<>的类或者接口,要明确传入的具体引用数据类型。 泛型技术是给编译器使用的技术,用于编译时期。确保了类型的安全。 运行时,会将泛型去掉,生成的class文件中是不带泛型的,...
- **编译器设计**:编译器中的符号表管理、语法分析等步骤会用到栈结构。 - **缓存管理**:在LRU(最近最少使用)缓存策略中,可以用栈来维护缓存项的访问顺序。 了解并熟练运用泛型栈有助于提升代码的可读性、可...
在银行操作系统的控制台实现中,我们可能会用到以下泛型相关的知识点: 1. **泛型类**:创建一个泛型类,如`BankAccount<T>`,其中`T`代表账户余额的类型,可以是整数、浮点数等。这样,我们可以确保所有账户操作都...
JDK 1.5的泛型實現(Generics in JDK 1.5) 1 侯捷觀點 JDK 1.5的泛型實現 — Generics in JDK 1.5 — 北京《程序員》 2004/09 台北《Run!PC》2004/09 作者簡介:侯捷,資訊教育、專欄執筆、大學教師...
我自己用C#做的一个类似挖地雷的...类似VS2010工具箱的效果...)也用到泛型集合,oop的思想,线程,刚刚学,自己没事做的,欢迎给点意见,(qq:1578741102)源代码就免费附送了,管理员密码15255112050,可从配置修改
在实现自定义队列时,通常会用到队列的两个基本操作:入队(enqueue)和出队(dequeue)。队列是一种先进先出(FIFO)的数据结构,因此我们需要确保这两个操作符合这个原则。使用模板可以确保我们的队列可以处理任何...
我写了六个文件,有写成文章。上传资源是为了方便一点,代码的作用是,允许有多个用户,一个用户循序有多个账户。具体的题目的话是这个:①将类结构以代码形式表示,并对方法和构造器提供合理的实现;②使用...
实验中虽然没有直接用到Map,但在实际编程中,Map常用于存储和查找关联数据。 5. **泛型**:泛型是Java 5引入的新特性,允许在类、接口和方法声明中使用类型参数,提高了类型安全性和代码复用。实验中的Store类创建...
vb.net泛型在循环中删除对象__继续循环的方法, 在现实中比较常用到的。