c# - vb.net 人工作用域

标签 c# .net vb.net syntax c#-to-vb.net

在 VB.Net 4.0 中,我有时需要重复类似的代码,但由于代码的复杂性,我无法创建子程序来简化。我希望能够在 block 范围内声明变量,超出范围,然后重复。我目前的方法是做这样的事情。

If True Then
  Dim A = ...
  Dim B = ...
  (Code using A & B)
End If

...然后根据需要重复。

这个也行...

Try
  Dim A = ...
  Dim B = ...
  (Code using A & B)
Finally
End Try

否则我必须给每个变量唯一的名称...

Dim A1 = ...
Dim B1 = ...
(Code using A1 and B1)
Dim A2 = ...
Dim B2 = ...
(Code using A2 and B2)

...这使得重复代码变得危险,因为我在复制代码时可能会忘记更改变量名。

您可以在 C# 中完成...

{
  int A = ...
  int B = ...
  (Code using A & B)
}

在 VB.Net 中有没有办法以这种方式创建 block ?

最佳答案

我在日本网站上找到了这个答案。

With Nothing
  Dim A = ...
  Dim B = ...
  (Code using A & B)
End With

来自 http://www.ilovex.co.jp/Division/ITD/archives/2007/11/with_nothing.html

(Translated from Japanese) I think if we think about it, to use a With statement of whether it is not a better. Because, With statement is intended to be used in order to omit the code, because it is not intended to associative processing from the statement itself.

所以重点是,“With”语句除了包含快捷方式的代码外,实际上并没有做任何事情。但是,它确实创建了一个独特的范围。这似乎在编译器中应该很轻。虽然我很想看到像“开始/结束”这样的新语句,但从现在开始我将使用它。

关于c# - vb.net 人工作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13405675/

相关文章:

c# - 部分类跨越程序集

c# - WPF/C# - 将日期格式应用于 ListView

c# - Bitmap.Save "Object is currently in use elsewhere"线程问题

vb.net - 如何在 while 循环中限制 CPU 使用率

C# - Try/Catch 谓词表达式

c# - 如何将swagger导入带环境的 postman ?

.net - 两个项目的 ClickOnce 部署各有自己的配置文件

c# - 如果 C# 中提供了字体,是否可以计算固定宽度标签中可以容纳多少个字符?

vb.net - Emgu 3.0+中图像的DFT

vb.net - 捕获矩形