vb.net – 如何引用构造中“with”创建的对象?

我经常用来创建一个对象并运行它的方法.它使代码看起来干净:

With New MyObj(...)
  .Prop1 = Val1
  .Prop2 = Val2
  .Run()
End With

但是,有时我想返回对象:

With New MyObj(...)
  .Prop1 = Val1
  .Prop2 = Val2
  Return .Me
End With

但并非所有对象都具有Me(this)属性,那么如何在with中引用相关对象呢?

最佳答案 我会在启动With块之前保留对实例的引用,然后在使用成员完成后返回它:

Dim myInstance = New MyObj(...)
With myInstance
  .Prop1 = Val1
  .Prop2 = Val2
End With
Return myInstance

您无需担心垃圾收集的影响,因为无论如何您创建的变量都会超出范围.

点赞