ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
C# とは
C# は Anders Hejlsberg(Turbo Pascal / Delphi の作者)が主導して Microsoft で 2000 年に開発したプログラミング言語です。当初は Java の対抗馬として誕生しましたが、その後独自に進化し、.NET プラットフォーム(旧 .NET Framework、現在は .NET(旧 .NET Core))上で動作するマルチパラダイム言語として、Windows 開発・ゲーム開発・Web サーバーまで幅広く使われています。
| 項目 | 内容 |
|---|---|
| 初版 | 2000 年(C# 1.0) |
| 設計者 | Anders Hejlsberg ほか Microsoft |
| 最新版(2026 年) | C# 13(.NET 9 同梱) |
| LTS バージョン | C# 12 / .NET 8(2026 年 11 月まで) |
| 動作環境 | .NET(Windows / Linux / macOS / iOS / Android / Web) |
| 主な用途 | Web (ASP.NET Core)、ゲーム (Unity)、デスクトップ (WPF/MAUI)、業務 (WinForms) |
| ライセンス | 言語仕様: ECMA-334 標準。コンパイラ・ランタイム: MIT |
.NET エコシステム
| カテゴリ | 技術 | 説明 |
|---|---|---|
| ランタイム | .NET 8 / 9 | クロスプラットフォーム(旧名 .NET Core) |
| ランタイム(旧) | .NET Framework 4.8 | Windows 専用、レガシー保守用 |
| Web | ASP.NET Core / Minimal API / Razor Pages | 高速 Web フレームワーク |
| Web SPA | Blazor Server / WebAssembly | C# でフロントエンド |
| デスクトップ | WPF / WinForms / MAUI / Avalonia | GUI アプリ |
| モバイル | .NET MAUI | Xamarin の後継、iOS/Android クロス開発 |
| ゲーム | Unity / Godot (C# モード) | 業界標準のゲームエンジン |
| クラウド | Azure Functions / Container Apps | サーバーレス・PaaS |
| ORM | Entity Framework Core / Dapper | データアクセス |
| パッケージ | NuGet | 1 万種以上のライブラリ |
Hello World
// .NET 6+ の最上位ステートメント(Program.cs 1 行で動く)
Console.WriteLine("Hello, C# 13!");
// 従来の書き方(クラス・Main 必須)
using System;
namespace MyApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
}# プロジェクト作成・実行
dotnet new console -n MyApp
cd MyApp
dotnet run
# Web API プロジェクト
dotnet new webapi -n MyApi
dotnet run
# NuGet パッケージ追加
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
現代的な C# の機能
// records (C# 9+) : 値オブジェクト
public record Person(string Name, int Age);
var p1 = new Person("Yamada", 30);
var p2 = p1 with { Age = 31 }; // イミュータブル更新
// パターンマッチ (C# 8+ / 強化 C# 11+)
string Describe(object o) => o switch
{
int n when n > 0 => $"正の整数 {n}",
string s => $"文字列 {s}",
null => "null",
_ => "その他"
};
// nullable reference types (C# 8+)
#nullable enable
string name = null; // ⚠️ 警告: 非 null 型に null
string? maybe = null; // ✅ ? が null 許容
int len = maybe.Length; // ⚠️ 警告
int len2 = maybe?.Length ?? 0; // ✅ null 安全
// 非同期 async/await
public async Task FetchAsync(string url)
{
using var client = new HttpClient();
return await client.GetStringAsync(url);
}
// required members (C# 11+)
public class User
{
public required string Email { get; init; }
public string? Name { get; init; }
}
var u = new User { Email = "a@b.co" }; // Email 必須
// プライマリコンストラクタ (C# 12)
public class Repo(DbContext db)
{
public User Find(int id) => db.Users.Find(id);
}
// コレクション式 (C# 12)
int[] nums = [1, 2, 3, 4, 5];
List list = [..nums, 6, 7];
LINQ — データ操作の決定打
using System.Linq;
var users = new[] {
new { Name = "Yamada", Age = 30 },
new { Name = "Tanaka", Age = 25 },
new { Name = "Suzuki", Age = 40 },
};
// メソッド構文
var adults = users
.Where(u => u.Age >= 30)
.OrderByDescending(u => u.Age)
.Select(u => u.Name)
.ToList();
// → ["Suzuki", "Yamada"]
// クエリ構文(SQL 風)
var q = from u in users
where u.Age >= 30
orderby u.Age descending
select u.Name;
// EF Core でデータベース操作
var posts = await db.Posts
.Where(p => p.PublishedAt < DateTime.Now)
.Include(p => p.Author)
.OrderByDescending(p => p.PublishedAt)
.Take(10)
.ToListAsync();
C# と Java の違い
| 機能 | C# | Java |
|---|---|---|
| プロパティ | { get; set; } 標準 | getter/setter メソッド手書き or Lombok |
| 構造体 | あり (struct, 値型) | なし(record class はある) |
| delegate / event | 言語機能 | Functional Interface で代用 |
| LINQ | 言語統合 | Stream API(やや冗長) |
| async/await | 言語機能 | CompletableFuture / Virtual Threads |
| null 安全 | nullable reference types | Optional / アノテーション |
| extension method | あり | なし(Kotlin にはある) |
| マルチプラットフォーム | .NET 8+ で完全対応 | JVM が動く環境全て |
用途別の C#
| 用途 | ライブラリ・フレームワーク |
|---|---|
| Web アプリ・API | ASP.NET Core / Minimal API |
| SPA | Blazor WebAssembly |
| デスクトップ (Win) | WPF / WinUI 3 / Avalonia (クロス) |
| モバイルアプリ | .NET MAUI |
| ゲーム | Unity(業界デファクト) |
| 業務システム (Win) | WinForms(保守)/ WPF |
| クラウド・サーバーレス | Azure Functions, AWS Lambda (.NET) |
| IoT / 組込 | .NET nanoFramework |
| 機械学習 | ML.NET |
FAQ
Q: .NET Framework と .NET(旧 Core)の違いは?
A: .NET Framework は Windows 専用・最終版 4.8。.NET(旧 Core)はクロスプラットフォーム・モダン。新規開発は.NET 8/9一択。
Q: Unity を使うだけでも C# を本格的に学ぶべき?
A: Unity の C# は実行環境 (Mono/IL2CPP) が特殊で、async/await や最新文法に一部制限あり。基礎は身につけて損なし。
Q: Visual Studio と Rider どちらが良い?
A: Windows + 大規模 .NET なら Visual Studio。Mac/Linux でも快適に書きたいなら Rider(有償)or VS Code + C# Dev Kit(無償)。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
同階層のページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?