ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
VB.NET の Dim と C# の変数宣言
日時: 2009/02/21 20:10
名前: lightbox



Microsoft ドキュメント

配列

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));
	}

}
Microsoftドキュメント : 1次元配列の説明
メンテナンス

VB.NET String 型の宣言 ( No.1 )
日時: 2007/07/01 15:07
名前: lightbox


日時: 2007/07/01 15:07
名前: lightbox
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
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
C# String 型の宣言 ( No.2 )
日時: 2007/07/01 15:30
名前: lightbox
using System;

// ********************************************************
// * 実行
// ********************************************************
public class App
{

	public static void Main() {

// ****************************************
// 未初期化の文字列型はエラー
// データをセットする必要がある
// ****************************************
		String str;
		str = "ABC";

		Console.WriteLine(str);


// ****************************************
// 初期化された文字列型
// ****************************************
		String str1 = "XYZ";

		Console.WriteLine(str1);


// ****************************************
// コンストラクタによる初期化
// ****************************************
		char[] ch2 = new char[] {'A','B'};
		String str2 = new String(ch2);

		Console.WriteLine(str2);

// ****************************************
// 配列を new で初期化
// ****************************************
		String[] str3 = new String[] {"ABC","XYZ"};

		Console.WriteLine(str3);
		Console.WriteLine(String.Join(",",str3));

// ****************************************
// 上記短縮形
// ****************************************
		String[] str4 = {"ABC","XYZ"};

		Console.WriteLine(str4);
		Console.WriteLine(String.Join(",",str4));

// ****************************************
// 要素数を指定して、空で初期化
// ****************************************
		String[] str5 = new String[3];

		Console.WriteLine(str5);
		Console.WriteLine(String.Join(",",str5));

	}

}
このアーティクルの参照用URLをクリップボードにコピー メンテナンス