[ VB.NET / C# ] Using null, With Noting で変数のスコープを限定

Pocket

ここでは、C# と VB.NET で明示的に変数のスコープを限定するサンプルコードを掲載しています。

スポンサーリンク


通常あまり使用することはないかもしれませんが、あるメソッドを複数のブロックに分けて、それぞれのブロックの範囲内でのみ参照できる変数を C# では UsingVB.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 はここでは参照できない

ただし、似たような処理をコピペして使用するために、このような記述を行うと、後々のメンテは大変になると思われます。一度そのようなソースコードに遭遇したことがありますが酷いものでした。

このようにメソッドを複数のブロックに分けるくらいであれば、メソッドごと分けたほうが良いような気がします。有用な活用方法があれば教えて欲しいです。

スポンサーリンク

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>