代码之家  ›  专栏  ›  技术社区  ›  Marcus L

在vb.net中用关键字扩展

  •  0
  • Marcus L  · 技术社区  · 14 年前

    在我当前的项目中,每个人都以变量和方法的名称命名它们是什么以及它们做什么。这有助于快速理解代码,但由于有许多长的变量名,因此会带来一些麻烦,例如在将数据集复制到实体/对象时。所以,当你理解代码时,可读性仍然会受到打击。

    veryLongVariableName.Id = datasetVeryLongVariableName.Id
    veryLongVariablename.Something = datasetVeryLongVariableName.Something
    etc.
    

    使用带有关键字的vb.net可以有所帮助。

    With veryLongVariableName
    
        .Id = datasetVeryLongVariableName.Id
        .Something = datasetVeryLongVariableName.Something
    
    End With
    

    现在,我的问题是,除了同时使用几个变量之外,还有什么方法可以与一起使用吗?类似:

    With veryLongVariableName As a, datasetVeryLongVariableName as b
    
        a.Id = b.Id
        a.Something = b.Something
    
    End With
    

    我完全赞成描述性命名约定,但它们确实会使事情变得混乱。尤其是在VB中!

    3 回复  |  直到 14 年前
        1
  •  4
  •   keithwill    14 年前

    如果执行这些分配集的代码是单个逻辑操作的一部分,那么您可以将其重构为自己的方法/函数调用。虽然这并不能明确回答你关于多重用法的问题,但它可以提高可读性,并提供一些流行书籍中的建议,如代码完成。

        2
  •  4
  •   Oded    14 年前

    不,这是不可能的。

    With 仅适用于单个对象。见 MSDN .

    但是你可以, nest With statements (尽管不建议这样做,因为这样可能会使代码无法读取)。

        3
  •  2
  •   Cody Gray    14 年前

    幕后,所有的 With 关键字does声明引用指定对象的临时变量。它的引用将编译为与完全限定对象名完全相同的IL代码,因此没有性能损失。您可以自己轻松地做到这一点:

    Dim a as MyClass = veryLongVariableName
    Dim b as MyOtherClass = datasetVeryLongVariableName
    
    a.Id = b.Id
    a.Something = b.Something