この2週間コースと「1日目」のゴール
1日目のテーマは、難しいことを全部横に置いて
「C# のコードを自分の手で書いて、コンソールアプリを1つ動かす」
ここまで行くことです。
今日のゴールは次の3つです。
- C# をどこで書いて、どうやって実行するかが分かる
- 「Hello World」ではなく、ちょっとだけ“自分ごと”な自己紹介アプリを作る
- C# の基本構造(
Mainメソッド・Console.WriteLine・変数)をざっくり理解する
完璧に覚える必要はありません。
「なんとなく見たことある」「あ、これ前やったやつだ」が増えれば十分です。
開発環境を決める
いちばんシンプルな選択肢
C# を書く場所として、初心者におすすめなのは次のどちらかです。
- Visual Studio(Community 版)
- VS Code + .NET SDK
ここでは説明をシンプルにするために「.NET SDK を入れて、コマンドでプロジェクトを作る」流れで話します。
もしすでに Visual Studio を入れているなら、「コンソールアプリ(C#)」の新規プロジェクトを作っても同じです。
プロジェクトを作るイメージ
C# では、1つのアプリは「プロジェクト」という単位で管理されます。
フォルダの中に
- ソースコード(.cs ファイル)
- 設定ファイル
- ビルドされた実行ファイル
などがまとまって入るイメージです。
コマンドライン(ターミナル)で次のように打つと、新しいコンソールアプリが作れます。
dotnet new console -o MyFirstApp
MyFirstApp というフォルダができ、その中に Program.cs というファイルが入っています。
今日はこの Program.cs を編集していきます。
最初の C# プログラムを動かしてみる
既に入っているコードを実行してみる
MyFirstApp フォルダに移動して、次を実行します。
cd MyFirstApp
dotnet run
おそらくコンソールに
Hello, World!
と表示されるはずです。
これが「C# の最小コンソールアプリ」です。
まだ中身は分からなくて大丈夫。「C# はちゃんと動くんだな」と感じてくれれば OK。
Program.cs の中身を見てみる
Program.cs を開くと、だいたい次のようなコードが入っています(バージョンによって少し違います)。
Console.WriteLine("Hello, World!");
C#あるいは、もう少し長い形かもしれません。
using System;
namespace MyFirstApp
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
}
C#どちらでも本質は同じです。
C# の世界では「Main メソッドから処理が始まる」と覚えておいてください。
C# プログラムの「骨組み」をざっくり理解する
Main メソッドが「スタート地点」
長い方の書き方を例に、重要なところだけ抜き出して説明します。
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
C#ここが、プログラムの「入口」です。
アプリを実行すると、必ずこの Main メソッドから処理が始まります。
staticやvoid、string[] argsは、今は「おまじない」と思って構いません- 大事なのは「
Mainという名前のメソッドがスタート地点」ということ
C# では「メソッド」という言葉をよく使いますが、
今は「処理のまとまり」「関数」とほぼ同じ意味だと思っておいて大丈夫です。
Console.WriteLine の意味を分解する
次の一行を、丁寧に分解してみます。
Console.WriteLine("Hello, World!");
C#Console
コンソール(黒い画面)に文字を出したり、入力を受け取ったりするための“道具箱”の名前WriteLine
その道具箱の中の「1 行表示する」機能の名前("Hello, World!")
その機能に渡している「表示したい文字列」;
「ここで 1 文が終わり」という印。C# ではとても大事。
つまり、「Console という道具箱の WriteLine という機能を使って、“Hello, World!” を表示している」ということです。
自己紹介コンソールアプリを作ってみる
表示するメッセージを自分仕様に変える
まずは Hello, World! を、自分の自己紹介に変えてみましょう。
Console.WriteLine("はじめまして。C# を勉強中です。");
Console.WriteLine("好きな食べ物はカレーです。");
Console.WriteLine("2週間でアプリを作れるようになるのが目標です。");
C#dotnet run して、3 行のメッセージが表示されれば OK です。
ここで感じてほしいのは、
- 同じ
Console.WriteLineを何度も使える - 上から順番に実行される
という「プログラムの流れ」です。
変数を使って、少しだけ“プログラムっぽく”する
今度は、文字列をそのまま書くのではなく、「変数」に入れてから表示してみます。
string name = "Taro";
int age = 25;
Console.WriteLine("私の名前は " + name + " です。");
Console.WriteLine("年齢は " + age + " 歳です。");
C#ここで新しく出てきたのが「変数」と「型」です。
変数と型をかみ砕いて理解する
変数は「ラベル付きの箱」
次の一行を見てください。
string name = "Taro";
C#これをイメージで説明すると、
string→ 「文字列を入れる箱ですよ」という種類(型)の宣言name→ 箱の名前=→ 「右側の値を左側の箱に入れる」という意味(代入)"Taro"→ 実際に箱に入れる中身(文字列)
C# では、「どんな種類の値を入れる箱か」を必ず宣言します。
これが「型付き言語」の特徴です。
よく使う基本の型
1日目で覚えるのは、この3つだけで十分です。
string name = "Taro"; // 文字列
int age = 25; // 整数
double height = 1.75; // 小数
C#string→ 文字列(文章・名前など)int→ 整数(年齢、個数など)double→ 小数(身長、重さなど)
「型を先に書いて、変数名を書いて、= で値を入れる」
このパターンに慣れていきましょう。
文字列と数値をつなげる
次のコードを見てください。
string name = "Taro";
int age = 25;
Console.WriteLine("名前: " + name);
Console.WriteLine("年齢: " + age + " 歳");
C#"年齢: " + age + " 歳" の部分では、
- 文字列
"年齢: " - 整数
age - 文字列
" 歳"
を + でつなげています。
C# では、文字列と他の値を + でつなげると、
他の値が自動的に文字列に変換されて、一つの長い文字列になります。
ユーザーから入力を受け取るミニアプリにする
Console.ReadLine で入力を受け取る
今度は、「プログラム側が勝手に自己紹介する」のではなく、
ユーザーに名前と年齢を入力してもらうアプリにしてみましょう。
Console.WriteLine("あなたの名前を入力してください:");
string name = Console.ReadLine();
Console.WriteLine("あなたの年齢を入力してください:");
string ageText = Console.ReadLine();
Console.WriteLine("こんにちは、" + name + " さん。");
Console.WriteLine("あなたは " + ageText + " 歳なんですね。");
C#ここで新しく出てきたのが Console.ReadLine() です。
ReadLineは「1 行分の入力を文字列として受け取る」機能- ユーザーが Enter を押すまで待ってくれる
Console.ReadLine() の結果は「必ず string(文字列)」になります。
年齢もいったん文字列として受け取っているのがポイントです。
数値として扱いたいときは変換が必要
もし「年齢+1 歳」を計算したいなら、文字列のままでは足し算できません。int に変換する必要があります。
Console.WriteLine("あなたの年齢を入力してください:");
string ageText = Console.ReadLine();
int age = int.Parse(ageText);
Console.WriteLine("来年、あなたは " + (age + 1) + " 歳になります。");
C#ここでの重要ポイントは次です。
int.Parse(文字列)→ 文字列を整数に変換する- 変換できない文字列(例: “abc”)を渡すとエラーになる
1日目の段階では、「文字列として受け取る」「必要なら int.Parse で数値にする」という流れだけ覚えておけば十分です。
1日目のまとめと、ここまでで作れる「小さなアプリ」
今日学んだキーワード
Console.WriteLineで画面に表示するConsole.ReadLineでキーボード入力を受け取るstring/int/doubleといった「型」- 変数は「型+名前+値」で宣言する
Mainメソッドがプログラムのスタート地点
全部を完璧に覚える必要はありません。
「見たことがある」「なんとなく意味が分かる」が増えていれば十分です。
1日目の仕上げ課題(ミニアプリ)
最後に、こんな自己紹介アプリを自分で書いてみてください。
- 名前を入力してもらう
- 年齢を入力してもらう
- 好きな食べ物を入力してもらう
- 最後に 1 行でまとめて表示する
例:
Console.WriteLine("あなたの名前を入力してください:");
string name = Console.ReadLine();
Console.WriteLine("あなたの年齢を入力してください:");
string ageText = Console.ReadLine();
Console.WriteLine("あなたの好きな食べ物を入力してください:");
string food = Console.ReadLine();
Console.WriteLine("こんにちは、" + name + " さん(" + ageText + " 歳)。好きな食べ物は " + food + " なんですね。");
C#ここまでできたら、1日目としては十分すぎるくらい良いスタートです。
次回(2日目)への予告
2日目では、今日の自己紹介アプリをベースにしながら
- if 文(条件分岐)
- 簡単な計算
- 「ミニ診断アプリ」っぽいもの
に発展させていきます。
