相关疑难解决方法(0)

随着...结束与在VB.NET中使用

我刚刚发现像C#一样,VB.NET也有using关键字.

到现在为止,我认为它没有它(愚蠢的我,我知道......)并做了这样的事情:

With New OleDbConnection(MyConnectionString)
   ' Do stuff
End With
Run Code Online (Sandbox Code Playgroud)

与使用这样的using语句相比,这有什么影响

Using cn as New OleDBConnection(MyConnectionString)
    With cn
        ' Do stuff with cn
    End With
End using
Run Code Online (Sandbox Code Playgroud)

更新:

我应该补充一点,我熟悉using语句的作用,因为它在退出构造时处理了对象.

但是,据我所知,With New ...构造将使对象在对象超出范围时将其标记为垃圾收集.

所以我的问题是,唯一的区别在于using我将立即释放内存,而对于With构造,只要GC感觉它就会被释放吗?或者我错过了更大的东西?

是否有最佳实践意义?我应该去重写所有的代码我用With New MyDisposableObject() ... End With的Using o as New MyDisposableObject()?

vb.net scope idisposable using-statement with-statement

10
推荐指数
2
解决办法
2万
查看次数

在VB.Net中构造一个对象并调用一个没有赋值的方法

我不完全确定C#的作用是什么,所以我没有运气搜索VB.Net等效语法(如果它存在,我怀疑它可能没有).

在c#中,您可以这样做:

public void DoSomething() {
    new MyHelper().DoIt(); // works just fine
}
Run Code Online (Sandbox Code Playgroud)

但据我所知,在VB.Net中,您必须将辅助对象分配给局部变量,否则您只会收到语法错误:

Public Sub DoSomething()
    New MyHelper().DoIt() ' won't compile
End Sub
Run Code Online (Sandbox Code Playgroud)

这是我每天都在混合语言项目中遇到的好奇心之一 - 通常有一个VB.Net等价物,它使用的语法不那么明显.任何人?

vb.net c#-to-vb.net

4
推荐指数
1
解决办法
726
查看次数