ここでは、C# と VB.NET で明示的に変数のスコープを限定するサンプルコードを掲載しています。
スポンサーリンク
通常あまり使用することはないかもしれませんが、あるメソッドを複数のブロックに分けて、それぞれのブロックの範囲内でのみ参照できる変数を C# では Using、VB.NET では With を使って記述することができます。
VB.NET
' Withを使ってスコープの制限をかける
With Nothing
Dim scope1 As Integer = 0
' Withキーワードの範囲内でのみscope1を参照可能
End With
' scope1 はここから参照できない。
' Usingを使ってスコープの制限をかける
Using Nothing
Dim scope2 As Integer = 0
' Usingキーワードの範囲内でのみscope1を参照可能
End Using
' scope2 はここから参照できない。
C#
// using を使ってスコープに制限をかける
using (null)
{
int scope1 = 0;
}
// scope1 はここでは参照できない
// 括弧を使ってスコープに制限をかける
{
int scope2 = 0;
}
// scope2 はここでは参照できない
ただし、似たような処理をコピペして使用するために、このような記述を行うと、後々のメンテは大変になると思われます。一度そのようなソースコードに遭遇したことがありますが酷いものでした。
このようにメソッドを複数のブロックに分けるくらいであれば、メソッドごと分けたほうが良いような気がします。有用な活用方法があれば教えて欲しいです。