導入
ConsoleやListはどこから来るのでしょうか。C#の型は**名前空間(namespace)**という住所で整理されており、usingでその住所を「取り込む」ことで短い名前で使えます。このサイトのブラウザ実行ではusingを裏で自動注入していますが、実際のプロジェクトでは自分で書きます。仕組みを理解しておきましょう。
図解
flowchart TB
NS["名前空間(型の住所)<br/>System / System.Collections.Generic ..."] --> U["using で取り込む"]
U --> S["短い名前で使える<br/>Console / List<T>"]
GU["global using<br/>プロジェクト全体で共有"] -.-> U
US["using static<br/>クラス名すら省略"] -.-> U
サンプル
// using static: クラス名(Math.)すら省略して、そのメンバーを直接呼べる
using static System.Math;
Console.WriteLine(Sqrt(16)); // 4 (本来は Math.Sqrt(16))
Console.WriteLine(Max(3, 9)); // 9 (本来は Math.Max(3, 9))
- 名前空間は型の住所。
System.Text.StringBuilderなら「Systemの中のTextの中のStringBuilder」 using System;のように書くと、その住所の型を短い名前で使える(通常のプロジェクトでは各ファイル先頭に書く)global using(global using System;)はプロジェクト全体で一度書けば全ファイルに効く(.NETの「暗黙のusing」の正体)using staticはクラス名まで省略して静的メンバーを直接呼べる- 自分のコードを名前空間で整理するときは、ファイル先頭に
namespace MyApp;(ファイルスコープ名前空間)と書く
演習
using static System.Math;
// TODO: using static を活かし、144 の平方根を出力してください(12)
___
- 期待される出力:
12
ヒント1を見る
using static System.Math;があるのでSqrt(...)をそのまま呼べます
ヒント2を見る
Console.WriteLine(Sqrt(144));
まとめ
- 型は名前空間(住所)で整理され、
usingで取り込むと短い名前で使える global usingはプロジェクト全体、using staticはクラス名も省略- 自分のコードは
namespaceで整理する
次回: ファイルの読み書き(ローカル実施)です。