Hello World - 入門対話型チュートリアル
このチュートリアルでは C# を対話形式で学習できます。ブラウザーを使用して C# を記述し、コードをコンパイルして実行した結果を確認します。 このチュートリアルには、"Hello World" プログラムを開始する一連のレッスンが含まれています。 これらのレッスンでは、C# 言語の基本を説明します。
ヒント
フォーカス モード内にコード スニペットを貼り付けるには、キーボード ショートカット (Ctrl + v、または cmd + v) を使用する必要があります。
最初のプログラムを実行する
対話型ウィンドウで次のコードを実行します。 [Enter focus mode](フォーカス モードを入力する) ボタンを選択します。 次に、対話型ウィンドウで次のコード ブロックを入力し、[実行] を選択します。
Console.WriteLine("Hello World!");
おめでとうございます! 最初の C# プログラムを実行しました。 これは "Hello World!" というメッセージを出力する単純なプログラムです。 Console.WriteLine メソッドを使用してこのメッセージを出力しました。 Console
は、コンソール ウィンドウを表す型です。 WriteLine
は、そのテキスト コンソールに 1 行のテキストを出力する Console
型の 1 つのメソッドです。
次に進んで、さらに詳しく見てみましょう。 このレッスンの残りの部分では、C# においてテキストを表す string
型の機能を確認します。 Console
型と同じように、string
型にもメソッドがあります。 string
メソッドはテキストを処理します。
変数の宣言と使用
最初のプログラムでは、string
の "Hello World!" が画面に出力されました。
ヒント
C# (または何らかのプログラミング言語) について詳しく学習するに従い、コードを記述する際にミスをすることもあるでしょう。 コンパイラは、そうしたエラーを発見して報告します。 エラー メッセージが出力された場合は、例のコードをよく確認して、対話型ウィンドウで修正すべきコードを見つけます。 こうした実習が C# コードの構造を理解するのに役立ちます。
最初のプログラムは、1 つのメッセージしか出力できません。 変数を使用すると、もっと役立つプログラムを記述できます。 変数は、同じコードを別の値で実行するのに使用できる記号です。 試してみましょう。 対話型ウィンドウで記述したコードを次のコードに置き換えます。
string aFriend = "Bill";
Console.WriteLine(aFriend);
最初の行で変数 aFriend
を宣言し、その変数に "Bill" という値を代入しています。 2 番目の行でその名前を出力しています。
宣言した変数に別の値を代入できます。 この名前を友人の名前に変更できます。 対話型ウィンドウで、先ほど追加したコードのあとに次の 2 行を追加します。 aFriend
変数の宣言とその最初の割り当てが変わっていないことを確認してください。
重要
aFriend
の宣言は削除しないでください。 既存の宣言の後に次のコードを追加してください。
aFriend = "Maira";
Console.WriteLine(aFriend);
aFriend
変数に格納された値に基づいて、コードの同じ行に 2 つの異なるメッセージが表示されていることに注目してください。
お気付きかと思いますが、最後の 2 つのメッセージから "Hello" という言葉がなくなっています。 修正しましょう。 メッセージを出力する行を次のように変更します。
Console.WriteLine("Hello " + aFriend);
もう一度 [実行] を選択して結果を確認します。
変数と定数の文字列から文字列を作成するには、+
を使用していました。 もっと良い方法があります。
変数を {
と }
の文字間に配置して、そのテキストを変数の値で置き換えるように C# に指示することができます。
これは、文字列補間と呼ばれます。
文字列の開始引用符の前に $
を追加する場合、中かっこの間にある文字列内に、aFriend
などの変数を含めることができます。 ぜひ試してみてください。
Console.WriteLine($"Hello {aFriend}");
もう一度 [実行] を選択して結果を確認します。 メッセージは "Hello {aFriend}" ではなく、"Hello Maira" であるはずです。
文字列の処理
先ほどの編集を通して、文字列を使って何ができるかを初めて確認しました。 さらに詳しく見てみましょう。
中かっこの間の変数は 1 つに制限されません。 これを試してみます。
string firstFriend = "Maria";
string secondFriend = "Sage";
Console.WriteLine($"My friends are {firstFriend} and {secondFriend}");
文字列についてさらに調べると、文字列は単なる文字のコレクションではないことがわかります。 文字列の長さを確認するには、Length
を使用します。 Length
は文字列のプロパティであり、その文字列の文字数を返します。 対話型ウィンドウの下部に次のコードを追加します。
Console.WriteLine($"The name {firstFriend} has {firstFriend.Length} letters.");
Console.WriteLine($"The name {secondFriend} has {secondFriend.Length} letters.");
ヒント
このあたりで、自分で試してみるといいでしょう。 Console.WriteLine()
を使用して画面にテキストを出力できることを学習しました。 変数を宣言して文字列同士を連結する方法についても学習しました。 対話型ウィンドウで実際に確認してみてください。 このウィンドウには、実行できることの候補を作成する IntelliSense という機能があります。 firstFriend
で d
の後に .
を入力します。 使用できるプロパティとメソッドの候補の一覧が表示されます。
文字列の追加操作
メッセージを出力するのに Console.WriteLineメソッドを使用してきました。 メソッドは、何らかのアクションを実装したコードのブロックです。 メソッドに名前があることで、それにアクセスできます。
Trim
文字列の先頭または末尾に表示したくないスペースがあるとします。 それらのスペースを文字列からトリミングしたいと考えています。 この処理には、Trim メソッドと、それに関連した TrimStart と TrimEnd メソッドを使用します。 これらのメソッドを使用するだけで、先頭と末尾のスペースを削除できます。 次のコードを試してみてください。
string greeting = " Hello World! ";
Console.WriteLine($"[{greeting}]");
string trimmedGreeting = greeting.TrimStart();
Console.WriteLine($"[{trimmedGreeting}]");
trimmedGreeting = greeting.TrimEnd();
Console.WriteLine($"[{trimmedGreeting}]");
trimmedGreeting = greeting.Trim();
Console.WriteLine($"[{trimmedGreeting}]");
角括弧の [
と ]
により、Trim
、TrimStart
、TrimEnd
メソッドですることを目で確認できます。 この括弧により、空白の始まりと終わりが示されます。
このサンプルでは、文字列を処理するための重要な概念のいくつかを説明しています。 文字列を操作するメソッドは、定位置に変更を加えるのではなく、新しい文字列オブジェクトを返します。 Trim
メソッドのいずれかに対する各呼び出しは新しい文字列を返すが元のメッセージを変更しない、ということが確認できます。
Replace
文字列を処理するメソッドは他にもあります。 たとえば、エディターやワード プロセッサで検索と置換のコマンドを以前使用したことがあるかもしれません。 Replace メソッドはそれと似た処理を文字列で行います。 このメソッドは部分文字列を検索し、それを別のテキストに置き換えます。 Replace メソッドは、2 つのパラメーターを受け取ります。 パラメーターは丸かっこ内の文字列です。 最初の文字列は、検索対象のテキストです。 2 つ目の文字列は、置換後のテキストです。 ご自分で試してみてください。 このコードを追加します。 sayHello
変数の後ろに .Re
と入力するとヒントが表示されます。
string sayHello = "Hello World!";
Console.WriteLine(sayHello);
sayHello = sayHello.Replace("Hello", "Greetings");
Console.WriteLine(sayHello);
その他にも役立つメソッドが 2 つあり、1 つは文字列のすべてを大文字にし、もう 1 つは文字列のすべてを小文字にします。 次のコードを試してみてください。 入力して、To
と入力し始めると IntelliSense でどのようにヒントが表示されるかを確認します。
Console.WriteLine(sayHello.ToUpper());
Console.WriteLine(sayHello.ToLower());
検索文字列
検索と置換の演算子は他にも、文字列内のテキストを検索できます。 検索には Contains メソッドを使用できます。 これにより、文字列内に部分文字列が含まれているかどうかを確認できます。 次のコードを試してみて、Contains を確認してください。
string songLyrics = "You say goodbye, and I say hello";
Console.WriteLine(songLyrics.Contains("goodbye"));
Console.WriteLine(songLyrics.Contains("greetings"));
Contains メソッドはブール値を返し、検索した文字列が見つかったかどうかを知らせます。 ブール値は true
か false
どちらかの値を格納します。 テキスト出力として表示される場合は、それぞれ大文字の True
、False
になります。 ブール値については、この後のレッスンで詳しく学習します。
課題
似たような 2 つのメソッドがあり、StartsWith と EndsWith も文字列内の部分文字列を検索します。 これらは文字列の先頭または末尾の部分文字列を検索します。 先述のサンプルを変更して、Contains の代わりに StartsWith と EndsWith を使用してみてください。 文字列の先頭にある "You" または "goodbye" を検索します。 文字列の末尾にある "hello" または "goodbye" を検索します。
注意
文字列の末尾にあるテキストをテストするときは、句読点に注意します。 文字列が句点で終わる場合は、末尾に句点を含めた文字列を検索する必要があります。
先頭が "You" で末尾が "hello" の場合は true
になり、先頭または末尾が "goodbye" の場合は false
になります。
課題完了
コードは次のようになりましたか?
string songLyrics = "You say goodbye, and I say hello";
Console.WriteLine(songLyrics.StartsWith("You"));
Console.WriteLine(songLyrics.StartsWith("goodbye"));
Console.WriteLine(songLyrics.EndsWith("hello"));
Console.WriteLine(songLyrics.EndsWith("goodbye"));
おめでとうございます。
C# 概要の "Hello C#" チュートリアルはこれで終了です。 下の [C# の数値] リンクを選択することで次の対話式チュートリアルを開始することも、.NET サイトにアクセスして .NET SDK をダウンロードし、ご利用のマシン上でプロジェクトを作成し、コーディングを続けることもできます。 "次の手順" セクションでは、これらのチュートリアルに戻ります。
string
型の詳細については次を参照してください。
- 文字列に関する C# プログラミング ガイドの記事。
- 文字列の処理に関するヒントもご覧ください。
このセクションに問題がある場合 このセクションを改善できるよう、フィードバックをお送りください。
.NET