Module MyModule
' ********************************************************' * 実行' ********************************************************
Sub Main()
' ************************************************' 添え字上限のみ決定する単純な宣言' この場合、0〜1 で、2要素' ************************************************
Dim ch(1) As Char
ch(0) = "A" : ch(1) = "B"
Dim str As New String(ch)
Console.WriteLine("{0}:添え字上限->{1}", str, ch.GetUpperBound(0))
' ************************************************' 要素数は、初期化データの数で決定する' 添え字を書くとエラーとなる' ( Char なので、"ABC" の先頭文字が使用されている )' ************************************************
Dim ch1() As Char = {"ABC","XYZ"}
Dim str1 As New String(ch1)
Console.WriteLine("{0}:添え字上限->{1}", str1, ch1.GetUpperBound(0))
' ************************************************' この New Char(3) は、コンストラクタでは無く' 新規配列の作成構文。4要素を空で作成' ************************************************
Dim ch2() As Char = New Char(3){}
ch2(0) = "A" : ch2(1) = "B" : ch2(2) = "C"
Dim str2 As New String(ch2)
Console.WriteLine("{0}:添え字上限->{1}", str2, ch2.GetUpperBound(0))
' ************************************************' 初期化データにより、2要素が作成される' ************************************************
Dim ch3() As Char = New Char(){"A","B"}
Dim str3 As New String(ch3)
Console.WriteLine("{0}:添え字上限->{1}", str3, ch3.GetUpperBound(0))
End Sub
End Module
↓C# による変数宣言
拡張子:
using System;
// ********************************************************// * 実行// ********************************************************
public class App
{
public static void Main() {
// ****************************************// char[] が一つのオブジェクト型// char[2] で二つの要素を作成// ****************************************
char[] ch = new char[2];
ch[0] = 'A';
ch[1] = 'B';
String str = new String(ch);
Console.WriteLine("{0}:添え字上限->{1}", str, ch.GetUpperBound(0));
// ****************************************// 要素数は、初期化データの数で決定する// 添え字を書いてもエラーとならないが、// 要素数と添え字と一致している必要がある// ****************************************
char[] ch1 = new char[] {'X','Y','Z'};
String str1 = new String(ch1);
Console.WriteLine("{0}:添え字上限->{1}", str1, ch1.GetUpperBound(0));
// ****************************************// これは、宣言時初期化の短縮型// ****************************************
char[] ch3 = {'X','Y'};
String str3 = new String(ch3);
Console.WriteLine("{0}:添え字上限->{1}", str3, ch3.GetUpperBound(0));
// ****************************************// 初期化されていない配列オブジェクトは、// new で構造をセットする必要がある// ****************************************
char[] ch4;
ch4 = new char[5];
String str4 = new String(ch4);
Console.WriteLine("{0}:添え字上限->{1}", str4, ch4.GetUpperBound(0));
// ****************************************// 宣言済みオブシェクトに新しい値をセット// ****************************************
ch4 = new char[] {'A','B'};
str4 = new String(ch4);
Console.WriteLine("{0}:添え字上限->{1}", str4, ch4.GetUpperBound(0));
}
}
Module MyModule
' ********************************************************' * 実行' ********************************************************
Sub Main()
' ************************************************' 未初期化の文字列型' ※ 警告発生' ************************************************
Dim str As String
' ************************************************' 初期化された文字列型' ************************************************
Dim str1 As String = "ABC"
Console.WriteLine(str1)
' ************************************************' コンストラクタによる初期化@' ************************************************
Dim ch() As Char = New Char(){"A","B"}
Dim str2 As New String(ch)
Console.WriteLine(str2)
' ************************************************' コンストラクタによる初期化A' ************************************************
Dim str3 As String = New String(ch)
Console.WriteLine(str3)
' ************************************************' 未初期化配列' WriteLine では何も出力されない' ************************************************
Dim str4 As String()
Dim str5() As String
Console.WriteLine(str4)
Console.WriteLine(str5)
' ************************************************' 初期化配列' New String(3){} で0〜3の4要素が作成される' WriteLine では System.String[] が出力される' ※ Join はクラスメソッド' ************************************************
Dim str6 As String() = New String(3) {}
Dim str7() As String = New String() {"ABC","XYZ" }
Console.WriteLine(str6)
Console.WriteLine(str7)
Console.WriteLine(String.Join(",",str6))
Console.WriteLine(String.Join(",",str7))
End Sub
End Module