Vb.net 在.NET中是否有用于此的内置泛型类?
是否有一个类正好等于这个类Vb.net 在.NET中是否有用于此的内置泛型类?,vb.net,generics,Vb.net,Generics,是否有一个类正好等于这个类 Class X(Of T) Public value As T End Class 请注意,Nullable(Of T)和Tuple(Of T)都不等于此类,因为它们不允许您设置成员值。该类应具有以下属性: 当作为参数传递时,被调用的方法所做的任何更改都会影响发送的对象,即,它不应该像对内部类型所做的那样创建对象的副本 应允许使用语法x.value=将成员值设置为值,其中x是x的对象 这不是一个结论性的答案,但我会试一试 我个人以前从未见过这种类型的课程。即
Class X(Of T)
Public value As T
End Class
请注意,Nullable(Of T)
和Tuple(Of T)
都不等于此类,因为它们不允许您设置成员值。该类应具有以下属性:
x.value=
将成员值设置为值,其中x是x的对象
这不是一个结论性的答案,但我会试一试 我个人以前从未见过这种类型的课程。即使是关于泛型的文档也显示了一个与您类似的示例类,该类正在示例中创建和使用: 下面是一个例子:
Public Class Generic(Of T)
Public Field As T
End Class
....
Public Shared Sub Main()
Dim g As New Generic(Of String)
g.Field = "A string"
'...
Console.WriteLine("Generic.Field = ""{0}""", g.Field)
Console.WriteLine("Generic.Field.GetType() = {0}", g.Field.GetType().FullName)
End Sub
我有时几乎一字不差地创建了这样一个类,尽管我调用了类
Holder
和字段Value
;对于这样一个类,有两个很好的用例:
- 给定
,可以对集合的内容执行方便的就地修改。例如,给定一个持有者的集合
,可以说列表
MyList[3].Value.X+=5代码>
- 如果
属于允许原子操作的类型,则可以对T
集合的内容执行线程安全的原子操作,即使该集合不是线程安全的。例如,在一个场景中,我预先知道字典需要的所有键,我创建了一个Holder
,然后可以让多个线程使用字典
来计算每个字符串出现的次数。尽管联锁。增量
不是线程安全的,但程序在没有锁定的情况下是线程安全的,因为字典中存储的字典
项集从不需要更改持有者
如果您想使用内置类型,有一种可以工作:大小为1的
T[]
。该类型的主要缺点是,该类型中没有任何固有的东西可以保证元素零实际存在(即,它不会是空数组)。是的。这似乎是一些证据。谢谢我将等待更多的输入,然后将“否”标记为答案。这很公平。我也很想知道这一点。我相信你已经意识到了,但以防万一你没有意识到,或者其他人在将来无意中发现了这一页不是。。。。您熟悉ByRef
modifier关键字,对吗?是的,我熟悉。但对我来说不起作用。我需要将变量传递给QueueUserWorkItem的回调委托,该委托恰好具有“委托子WaitCallback(状态为Object)”的定义。因此,发送ByRef不是一个选项。我将在回调函数中修改变量,然后在回调完成后在主线程中检查其值。即使发送一个对象(ref类型)也不是一个解决方案,因为在回调函数中为state变量赋值将使原始对象保持不变。所以我需要一个REF类型,在其中封装一个VAL类型。你听起来像是知道你在做什么的人,但我觉得有必要提一提。随身携带:)