ここでは、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 はここでは参照できない
ただし、似たような処理をコピペして使用するために、このような記述を行うと、後々のメンテは大変になると思われます。一度そのようなソースコードに遭遇したことがありますが酷いものでした。
このようにメソッドを複数のブロックに分けるくらいであれば、メソッドごと分けたほうが良いような気がします。有用な活用方法があれば教えて欲しいです。