Cri*_*inH 2 vb.net generics casting
在C#中可以转换为List<T>
- 所以如果你有:
List<Activity> _Activities;
List<T> _list;
Run Code Online (Sandbox Code Playgroud)
以下将有效:
_list = _Activities as List<T>;
Run Code Online (Sandbox Code Playgroud)
但用VB.NET翻译的行是:
_list = TryCast(_Activities, List(Of T))
Run Code Online (Sandbox Code Playgroud)
抛出编译错误.所以我有一个很好的搜索并试验LINQ找到一个方法绕过这个无济于事.任何人的想法?
谢谢
克里斯平
我重申,这在技术上应该是可能的.很明显,编译器不同意.解决方法很简单:
Dim _Activities As New List(Of Activity)
Dim o As Object = _Activities
Dim tlist = TryCast(o, List(Of T))
Run Code Online (Sandbox Code Playgroud)
或者作为一个单行:
Dim tlist = TryCast(CObj(_Activities), List(Of T))
Run Code Online (Sandbox Code Playgroud)
JIT编译器应该优化临时性,因此不需要任何费用.
归档时间: |
|
查看次数: |
23457 次 |
最近记录: |