代码之家  ›  专栏  ›  技术社区  ›  Kim Johansson

VB.NET:Lambda表达式,使用赋值运算符而不是等式

  •  3
  • Kim Johansson  · 技术社区  · 14 年前

    Function() Me._existingImports = Me.GetImportedAds()
    

    问题是它抱怨=号,因为它认为我在做一个比较,而我没有。我想分配Me.\u existingImports Me.GetImportedAds()的值,但是VB.NET抱怨DataTable没有=运算符。

    在C#中,这工作得非常好:

    () => this.existingImports = this.GetImportedAds()
    

    目前的解决方案是使用一个独立的方法,但这比需要的代码多得多。

    1 回复  |  直到 8 年前
        1
  •  9
  •   Dario    14 年前

    使用时 Function() 功能 这意味着你将值映射到值。

    因此 函数() x 42 …)作为主体,其任务是 ! (赋值不计算为类似于VB中C风格语言的值)

    所以你需要的不是 函数() Sub() ,它包含语句(操作)而不是值。

    Sub() Me._existingImports = Me.GetImportedAds()
    

    ... => ... 语法涵盖一切。