このリポジトリは、.NETプログラミングの基本概念を学習するためのシンプルなサンプルアプリケーションを含んでいます。
dot-net-devbox/
├── README.md # このファイル
└── SimpleCalculator/ # メインプロジェクト
├── Program.cs # エントリーポイント(対話型計算機)
├── MathUtils.cs # 数学計算ユーティリティクラス
├── Person.cs # オブジェクト指向学習用クラス
└── SimpleCalculator.csproj # プロジェクトファイル
- .NET SDK 8.0以上
- 対応OS: Windows, macOS, Linux
sudo snap install dotnet-sdk --classic
.NET公式サイトからインストーラーをダウンロード
brew install dotnet
cd SimpleCalculator
dotnet build
dotnet run
アプリケーションを実行すると、以下のメニューが表示されます:
=== シンプル計算機アプリ ===
基本的な四則演算ができます
操作を選択してください:
1. 足し算 (+)
2. 引き算 (-)
3. 掛け算 (*)
4. 割り算 (/)
5. 終了
選択 (1-5):
数字を入力して計算を実行できます。
- コンソール入出力:
Console.WriteLine()
,Console.ReadLine()
- 制御構造:
while
ループ、switch
文、if
文 - メソッドの定義と呼び出し
- 例外処理:
TryParse()
を使用した安全な数値変換 - 文字列操作: string interpolation (
$""
)
// 例: 安全な数値入力
static double GetNumber(string prompt)
{
double number;
while (true)
{
Console.Write(prompt);
string input = Console.ReadLine() ?? "";
if (double.TryParse(input, out number))
{
return number;
}
Console.WriteLine("有効な数値を入力してください。");
}
}
- 静的クラス:
static class
の使用 - XMLドキュメント:
///
を使用したコード文書化 - 例外処理:
ArgumentException
の適切な使用 - 数学的計算:
Math
クラスの活用 - 再帰: 階乗計算での再帰の実装
/// <summary>
/// 階乗を計算します(再帰を使用)
/// </summary>
public static long Factorial(int n)
{
if (n < 0)
throw new ArgumentException("負の数の階乗は計算できません");
if (n == 0 || n == 1)
return 1;
return n * Factorial(n - 1);
}
- カプセル化: プライベートフィールドとプロパティ
- コンストラクタ: オブジェクトの初期化
- 継承:
Student
クラスがPerson
クラスを継承 - ポリモーフィズム:
virtual
とoverride
の使用 - メソッドのオーバーライド:
ToString()
,Equals()
,GetHashCode()
public class Person
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (string.IsNullOrWhiteSpace(value))
throw new ArgumentException("名前を空にすることはできません");
_name = value;
}
}
}
# テストプロジェクトの作成
dotnet new xunit -n SimpleCalculator.Tests
# テストプロジェクトにメインプロジェクトの参照を追加
cd SimpleCalculator.Tests
dotnet add reference ../SimpleCalculator/SimpleCalculator.csproj
# テストの実行
dotnet test
# NuGetパッケージの追加例
dotnet add package Newtonsoft.Json
# appsettings.jsonの追加
dotnet add package Microsoft.Extensions.Configuration
dotnet add package Microsoft.Extensions.Configuration.Json
- 基本構文: 変数、演算子、制御構造
- メソッド: 関数の定義と呼び出し
- クラスとオブジェクト: オブジェクト指向の基本
- 例外処理: エラーハンドリング
- コレクション: List, Dictionary等
- LINQ: データクエリ
- 非同期プログラミング: async/await
メソッド | 説明 | 使用例 |
---|---|---|
SquareRoot() |
平方根計算 | MathUtils.SquareRoot(16) → 4 |
Power() |
累乗計算 | MathUtils.Power(2, 3) → 8 |
Factorial() |
階乗計算 | MathUtils.Factorial(5) → 120 |
GreatestCommonDivisor() |
最大公約数 | MathUtils.GreatestCommonDivisor(12, 8) → 4 |
CircleArea() |
円の面積 | MathUtils.CircleArea(5) → 78.54 |
機能 | 説明 |
---|---|
プロパティ | Name, Age, Hobbies の管理 |
バリデーション | 名前と年齢の入力値検証 |
趣味管理 | AddHobby(), RemoveHobby() |
情報表示 | DisplayInfo() |
年齢関連 | HaveBirthday(), IsAdult(), GetAgeGroup() |
# インストール確認
dotnet --version
# パスの確認
echo $PATH
# 依存関係の復元
dotnet restore
# クリーンビルド
dotnet clean
dotnet build
- コンソール出力のエラーメッセージを確認
- デバッガーを使用 (
dotnet run --debug
)
- 新しい演算の追加: 剰余計算(%)を追加
- 入力検証の改善: 不正な入力に対するエラーメッセージを改善
- 計算履歴: 過去の計算結果を保存・表示する機能
- 科学計算機: MathUtilsクラスの機能を使った高度な計算モード
- 設定ファイル: 計算精度や言語設定をJSONファイルで管理
- 単体テスト: MathUtilsクラスの全メソッドに対するテストケース作成
- GUI版: Windows FormsまたはWPFを使用したグラフィカル版
- Web API: ASP.NET Coreを使用したREST API版
- データベース: 計算履歴をSQLiteに保存
このプロジェクトはMITライセンスの下で公開されています。学習目的での使用・改変は自由に行ってください。
バグ報告や機能追加の提案は、GitHubのIssuesまでお願いします。プルリクエストも歓迎します。
Happy Coding! 🚀