我有一个采用System.Action的方法,这就是我想要的东西:
Function() Me._existingImports = Me.GetImportedAds()
事情是,它抱怨=符号,因为它认为我正在尝试进行比较,我不是。我想为Me.GetImportedAds()分配Me._existingImports,但VB.NET抱怨DataTable没有=运算符。
如何强制它使用赋值运算符而不是相等运算符?
在C#中,这非常合适:
() => this.existingImports = this.GetImportedAds()
目前解决方案是使用一个独立的方法,但这需要的代码多于所需的代码。
答案 0 :(得分:8)
使用Function()
时,您确实定义了一个匿名函数,这意味着您将值映射到值。
因此,Function()
严格需要一个表达式(如x
或42
...)作为正文,其中的作业不是! (作业不会评估为VB中的C风格语言中的值)
因此,您需要的不是Function()
而是Sub()
,它包含语句(操作)而不是值。
Sub() Me._existingImports = Me.GetImportedAds()
C#在这里没有区别,(更好的)... => ...
语法涵盖了所有内容。