是否有任何方法可以在4.0框架中使用新的动态功能,如ExpandoObjectVB.NET中没有设置Option Strict Off?使用C#,只有使用您明确声明的变量才会丢失类型安全性dynamic.但是使用VB,我发现使用这些功能的唯一方法就是Option Strict Off从一开始就在VB.NET中使用的旧技巧.如果没有Option Strict,文件中的所有内容都会被模糊输入污染,如下所示:
Option Explicit On
Option Strict Off
Option Infer On
Partial Public Class ClassX
Public Sub TestDynamic()
Dim dyn As Object = New System.Dynamic.ExpandoObject()
Dim a As String = 1 ''# Ew!
Dim obj As Object = "999"
dyn.Str = a ''# a is a string, remember? Even though it has a number
''# dyn.Str = 1 : Type = System.String
Console.WriteLine("dyn.Str = …Run Code Online (Sandbox Code Playgroud) 我应该将一些代码从VB转换为C#.给出以下VB工作行(我认为仅因为选项未设置为严格):
Dim someProp As SomeType
Try
someProp = CType(SomeInstance, Object).SomeProp
' ...
Run Code Online (Sandbox Code Playgroud)
由于后期绑定,这个代码在VB下是可能的.当然,以下内容不适用于C#:
SomeType someProp;
try
{
someProp = ((object)SomeInstance).SomeProp;
// ...
Run Code Online (Sandbox Code Playgroud)
我怎么能在C#下制定类似的东西呢?
任何tipps sl3dg3的thx