我有一个VB背景,我正在为我的新工作转换为C#.我也试图在.NET上做得更好.我已经看到关键字"T"在人们发布的样本中使用了很多.C#中的"T"是什么意思?例如:
public class SomeBase<T> where T : SomeBase<T>, new()
Run Code Online (Sandbox Code Playgroud)
怎么T办?我为什么要使用它?
use*_*603 50
它是泛型类型参数的符号.它也可能是其他东西,例如:
public class SomeBase<GenericThingy> where GenericThingy : SomeBase<GenericThingy>, new()
Run Code Online (Sandbox Code Playgroud)
只有T是Microsoft使用和鼓励的默认值.
Rob*_*ker 45
T不是关键字本身,而是泛型类型的占位符.请参阅Microsoft的泛型简介
等效的VB.Net语法是:
Public Class SomeBase(Of T As {Class, New}))
Run Code Online (Sandbox Code Playgroud)
bio*_*inc 15
用于代替T的另一个名称的一个很好的例子would是哈希表类,例如
public class Dictionary<K,V> ...
Run Code Online (Sandbox Code Playgroud)
凡K代表重点和V对价值.我认为T代表类型.
你可能已经看过这个了.如果你可以建立连接,它应该是相当有用的.
这将是一个"通用".正如人们已经提到的那样,微软对这个概念有一个解释.至于为什么"T" - 看到这个问题.
简而言之,它允许您创建专门用于特定类型的类/方法.一个经典的例子是System.Collections.Generic.List<T>班级.它是相同的System.Collections.ArrayList,除了它允许您只存储类型的项目T.这提供了类型安全性 - 您不能(意外或以其他方式)将错误类型的项目放入列表中.该System.Collections.Generic命名空间包含几个不同的集合类型,其利用了这一点.
至于你可以在哪里使用它 - 这取决于你.有许多用例不时出现.大多数情况下它是某种自制的系列(当内置的系列不够时),但它确实可以是任何东西.
| 归档时间: |
|
| 查看次数: |
81838 次 |
| 最近记录: |