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

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

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

Re[1]: コンソールからの入力


(過去ログ 35 を表示中)

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

■17805 / inTopicNo.1)  コンソールからの入力
  
□投稿者/ nyan (1回)-(2008/05/01(Thu) 23:20:09)

分類:[C#] 

コンソールからの入力で2つの整数を取得するために、
下記のように、2行に渡って取得するのは、コンソール画面の見栄えがよくないので、

Console.WriteLine("何行何列ですか?");
int gyou = Convert.ToInt32(Console.ReadLine());
int retu = Convert.ToInt32(Console.ReadLine());

なんとか、ユーザーに2,3のように1行で入力してもらって、
gyouには2をretuには3を保存するために、ヘルプを読みまくって、
見よう見まねで下記のような結論を出して、コードをかきあげたのですが、

string buf = Console.ReadLine();
string [] split = buf.Split(new Char [] {','});
int gyou = Convert.ToInt32(split[0]);
int retu = Convert.ToInt32(split[1]);

自分で打っておいてなんなんですが、
string [] split = buf.Split(new Char [] {','});の部分の意味がいまいちわかりません。
普通配列を宣言・初期化するときは、
string[] split = new buf[要素数]{初期値, ・・・};
でしますよね?
なんで、buf.Split(new Char[] { ',' });でsplitの宣言・初期化できるのか?
また、なんで、new Char [] {','}と、Char型の配列を、string型の配列に代入出来ているのかがわかりません。
どなたか、この疑問に答えてはいただけないでしょうか?

また、上記回答の他にもっとよい書き方があったら教えていただきたいです。
よろしくお願いします。

引用返信 編集キー/
■17808 / inTopicNo.2)  Re[1]: コンソールからの入力
□投稿者/ επιστημη (956回)-(2008/05/01(Thu) 23:45:27)
επιστημη さんの Web サイト
> なんで、buf.Split(new Char[] { ',' });でsplitの宣言・初期化できるのか?
> また、なんで、new Char [] {','}と、Char型の配列を、string型の配列に代入出来ているのかがわかりません。

stringのメソッドSplitにcharの配列を渡してるだけっしょ。

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -