VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • With...End With 语句 (Visual Basic)

执行重复引用单个对象或结构的一系列语句。

With object
    [ statements ]
End With

部件

术语

定义

object

必选。 变量或表达式。 可以计算为任何数据类型,包括基本类型。

statements

可选。 With 与 End With 之间对 object 运行的一条或多条语句。

End With

必选。 结束 With 块的定义。

备注

With...End With 允许对指定的对象执行一系列语句,而不必重新限定对象的名称。 如果对象的限定路径太长,使用 With...End With 可提高性能。 With 块也减少了限定路径的重复键入和错误键入其中任何元素的风险。

例如,若要修改单个对象的若干不同的属性,请将属性分配语句放在 With...End With 中,这样只需引用一次对象,而不必在每个属性分配中都引用它。

规则

  • **数据类型。**object 的数据类型可以是任何类或结构类型,甚至可以是 Visual Basic 基础类型(如 Integer)。 .NET Framework 支持类或结构的所有基础类型,您可在 With 块中访问它们的成员。

  • **声明。**进入 With 块前必须声明 object。 不能在 With 语句中声明它。

  • **迭代数。**With 块不是迭代构造。 除非块内存在循环,否则语句只运行一次。

  • **嵌套结构。**可以将一个 With...End With 结构放在另一个 With...End With 结构内以嵌套该结构。 有关示例,请参见如何:对对象执行多个操作 (Visual Basic)。

    但是,由于外部语句的成员被屏蔽在内部语句内,必须在内部 With 块中提供对外部 With 块中的任何对象成员的完全限定对象引用。

    您还可以将多个不同类型的控制结构嵌套在一个结构中。 有关更多信息,请参见 嵌套的控件结构 (Visual Basic)。

  • **传递到结构之外。**Visual Basic 不支持 Exit 语句 (Visual Basic) 将控制传递到 With 块之外。 如果需要在所有语句都执行完之前退出,请在 End With 语句上放置一个标签并使用 GoTo 语句 分支到该标签。 有关更多信息,请参见 如何:标记语句 (Visual Basic)。

    不能将控制从 With 块外传递到块内,也不能从块内传递到块外。 可以从块内调用过程,但控制将返回到以下语句。

  • **访问其他对象。**一旦进入 With 块,在传递 End With 语句之前,无法重新分配 object。 因此,访问指定对象的方法和属性时不必限定它们。 可以使用其他对象的方法和属性,但是必须用它们的对象名限定它们。

示例

下面的示例使用 With 块对单个对象执行一系列语句。 该示例假设已创建对象 testObject 且公开了引用的属性。

VB
With testObject
    .Height = 100
    .Text = "Hello, World"
    .ForeColor = System.Drawing.Color.Green
    .Font = New System.Drawing.Font(.Font,
        System.Drawing.FontStyle.Bold)
End With

对象初始值设定项中的 With 关键字

With 关键字还可用于对象初始值设定项。 有关更多信息和示例,请参见 对象初始值设定项:命名类型和匿名类型 (Visual Basic) 和 匿名类型 (Visual Basic)。

原文链接:https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/wc500chb(v=vs.100)


相关教程