C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 配列の構文の書き方について


(過去ログ 117 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■68995 / inTopicNo.1)  配列の構文の書き方について
  
□投稿者/ たくや (10回)-(2013/11/27(Wed) 19:24:17)

分類:[.NET 全般] 

質問致します。
以下のような構文を作りましたが、name1・name2は宣言されていないとエラーになります。
if構文で囲わずに、Dim name1() As String = { "鈴木", "佐藤"} Dim name2() As String = { "和夫", "剛史"}
で条件が男だけの場合は正常になります。

下記の条件によりname1、name2を変更したいのですがネットで検索してもヒットしません。
エラーにならない構文の書き方をご教授願います。


Dim Fname as String
        'seibetuは前の構文で男、女がランダムになります。

If seibetu = "男" Then
Dim name1() As String = { "鈴木", "佐藤"}
Dim name2() As String = { "和夫", "剛史"}
Else
Dim name1() As String = { "山田", "北野"}
Dim name2() As String = { "順子", "裕子"}
End If


For i = 0 To UBound(name1)
Fname = name1(i) & name2(i) 'ファイル名
next
引用返信 編集キー/
■68996 / inTopicNo.2)  Re[1]: 配列の構文の書き方について
□投稿者/ 魔界の仮面弁士 (439回)-(2013/11/27(Wed) 20:14:13)
No68995 (たくや さん) に返信
> 以下のような構文を作りましたが、name1・name2は宣言されていないとエラーになります。
変数宣言をブロックの外に出してしまいましょう。

Dim name1() As String
If seibetu = "男" Then
 name1 = New String() { "鈴木", "佐藤"}
Else
 name1 = New String() { "山田", "北野"}
End If


現行バージョンの VB では、変数宣言は、そのブロック内でのみ有効となります。
If ブロックのほか、With や Do なども同様です。

また、For に使うループカウンタも、
 For i As Integer = 0 To 2
のようにすることで、そのループ内でのみ有効な変数となります。
(VB2008 以降では型推論が働くので、For i = 0 To 2 でも OK です)
引用返信 編集キー/
■69043 / inTopicNo.3)  Re[2]: 配列の構文の書き方について
□投稿者/ たくや (12回)-(2013/11/29(Fri) 16:41:08)
魔界の仮面弁士様ありがとうございました。
宣言のやり方が理解できました。

ありがとうございます。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -