泥庭

2013年2月14日

C#erのためのVB.NET覚書

Filed under: .NET, 未分類 — タグ: , — yone64 @ 4:07 午後

配列編です。いろいろ気持ち悪い。

Module Module1

    Sub Main()

    End Sub

    Sub Array1()
        ' 1次元配列の宣言 括弧はどっちでも同じ
        Dim arrA As String() = Nothing
        Dim arrB() As String = Nothing

        ' 配列を決まった長さで初期化する方法 ※すべて要素数6で初期化
        Dim arrC As String() = New String(5) {}
        Dim arrD() As String = New String(5) {}
        ' 変数名に括弧が付く場合は、そのまま初期化が可能
        Dim arrE(5) As String
        ' どちらも型推論できるけど、括弧の有無が気持ち悪い
        Dim arrF = New String(5) {}
        Dim arrG() = New String(5) {}

        ' 配列を要素で初期化する
        Dim arrH As String() = New String() {"1", "2", "3"}
        Dim arrI As String() = {"1", "2", "3"}
        Dim arrJ = {"1", "2", "3"}
        Dim arrK() As String = New String() {"1", "2", "3"}
        Dim arrL() As String = {"1", "2", "3"}
        Dim arrM() = {"1", "2", "3"}

        'いろんな代入
        arrA = New String(1) {}         '要素数2
        arrA = New String(0) {}         '要素数1
        arrA = New String(-1) {}        '要素数0 (キモッ
        arrA = New String() {}          '要素数0
        arrB = New String(1) {"1", "2"}
        arrB = New String() {"1", "2"}
        arrB = {"1", "2"}
    End Sub


    Sub Array2()
        ' 2次元配列の宣言
        Dim arrA As String(,) = Nothing
        Dim arrB(,) As String = Nothing

        ' 初期化
        Dim arrC As String(,) = New String(1, 2) {}
        Dim arrD = New String(1, 2) {}
        Dim arrE(,) As String = New String(1, 2) {}
        Dim arrF(,) = New String(1, 2) {}
        Dim arrG(1, 2) As String


        Dim arrH As String(,) = New String(,) {{"1", "2", "3"}, {"a", "b", "c"}}
        'これは2次元配列扱いだそうです。
        Dim arrI As String(,) = {{"1", "2", "3"}, {"a", "b", "c"}}
        Dim arrJ = {{"1", "2", "3"}, {"a", "b", "c"}}

    End Sub


    Sub ArrayOfArray()
        ' 多段配列の宣言
        Dim arrA As String()() = Nothing
        Dim arrB()() As String = Nothing

        ' 初期化
        Dim arrC As String()() = New String(1)() {}
        Dim arrD = New String(1)() {}
        Dim arrE()() = New String(1)() {}
        Dim arrF(1)() As String

        ' 要素で初期化 
        ' New String()は省略できない 2次元配列との兼ね合い?
        Dim arrH As String()() = New String()() {New String() {"1", "2"}, New String() {"a", "b", "c"}}
        Dim arrI = {New String() {"1", "2"}, New String() {"a", "b", "c"}}


    End Sub
End Module

 

1件のコメント »


RSS feed for comments on this post. TrackBack URI

コメントを残す

WordPress.com で無料サイトやブログを作成.