乖乖的蘑菇 · 如何预防粉尘爆炸-临湘市政府网· 1 月前 · |
含蓄的闹钟 · 【offer信箱】澳英留学申请背景参考:法律 ...· 3 月前 · |
被表白的洋葱 · 脂肪肉瘤的 18F-氟代脱氧葡萄糖PET-C ...· 5 月前 · |
大方的台灯 · 引进国外综艺节目版权要完整 ...· 7 月前 · |
严肃的打火机 · 中国青年报:别让机关食堂成为大吃大喝的青纱帐 ...· 1 年前 · |
我有VB背景,我正在为我的新工作转换成C#。总的来说,我也在努力在.NET上做得更好。我在人们发布的示例中看到过很多关键词"T“。在C#中"T“是什么意思?例如:
public class SomeBase<T> where T : SomeBase<T>, new()
T
是做什么的?我为什么要用它呢?
它的意思是“任何类”。它可以是"B","A",随便什么。我认为使用T是因为“模板”
T本身不是关键字,而是泛型类型的占位符。查看微软的 Introduction to Generics
等效的VB.Net语法为:
Public Class SomeBase(Of T As {Class, New}))
最好的方法是让你自己熟悉“泛型”,web上的许多资源,这里是 one
T不是一个关键字,而是一个名称,据我所知,它可以是任何东西,但T是约定(当只需要一种类型时,coruse)
这是 generic type parameter 的符号。它也可以是其他的东西,例如:
public class SomeBase<GenericThingy> where GenericThingy : SomeBase<GenericThingy>, new()
只有T是Microsoft使用和鼓励使用的默认设置。
使用另一个名称代替T
would
的一个很好的例子是散列表类,例如
public class Dictionary<K,V> ...
其中
K
代表键,
V
代表值。我认为
T
代表类型。
您可能已经在周围看到过这个。如果你能做到这一点,这将是非常有帮助的。
T
是泛型类中类型参数的名称。它代表"Type“,但你也可以叫它”Alice“。
您可以使用泛型以类型安全的方式提高可重用性,而无需不必要的重复代码。因此,您不需要为
ListOfIntegers
、
ListOfStrings
、
ListOfChars
、
ListOfPersons
等编写类,而是可以编写一个泛型类
List<T>
,然后实例化
List<Int32>
、
List<string>
、
List<char>
和
List<Person>
类型的对象。编译器会帮你完成这项工作。
这将是一个“通用”。正如人们已经提到的,这个概念有一个 Microsoft explanation 。至于为什么要用"T“--参见 this question 。
简而言之,它允许您创建专用于特定类型的类/方法。一个典型的例子是
System.Collections.Generic.List<T>
类。除了它只允许存储
T
类型的项之外,它与
System.Collections.ArrayList
相同。这提供了类型安全--你不能(无意或无意地)将错误类型的项目放入列表中。
System.Collections.Generic
名称空间包含其他几种不同的集合类型,它们都利用了这一点。
至于你可以在哪里使用它--这取决于你。有很多用例会不时出现。大多数情况下,它是某种自制的集合(当内置的集合不够用时),但它实际上可以是任何东西。
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
扫码关注腾讯云开发者
领取腾讯云代金券
乖乖的蘑菇 · 如何预防粉尘爆炸-临湘市政府网 1 月前 |