この章のテーマ §
.(メンバー アクセス)演算子について学びます。この演算子の主要な使い方は2つあります。
前提知識 §
Console.WriteLineメソッド, 文字列の基礎, 変数の基礎, 配列の基礎, string型, foreach文
解説 §
.演算子(メンバー アクセス演算子)は、型が持っている機能にアクセスするための演算子です。
たとえば、int.MavValueと書いてint型の最大値が得られるのは、int型という型が持っているMavValueという機能にアクセスしているわけです。
.演算子の使い方はいろいろありますが、メンバーへのアクセスは大きく分けて2つの使い方があります。
一つは型名.機能名として使う方法です。サンプルソースのstring.Joinがそれにあたります。
もう1つは、値.機能名として使う方法です。サンプルソースのr1.Splitがそれにあたります。
この2つは厳密に区別して使わねばなりません。
特定の値に関係しない機能は前者。
特定の値に関係する機能は後者です。
複数の文字列を合体させて新しい文字列を産み出すJoinメソッドは特定の値には関係していません。
しかし、文字列を分解するSplitメソッドは、分解すべき文字列と密接に結びついていて、特定の値に関係しています。
値を相手に処理する場合は、それが定数でも変数でも複雑な式でも利用が可能です。
罠の数々 §
- 特定の値に関係しない機能は厳密には【静的】という。宣言する時にstaticキーワードを付けて明示するが、使うだけなら意識しなくても良い
- 原理的には、特定の値に強く結びついた静的な機能、あるいは、特定の値に結びついていないのに静的ではない機能も定義できるので、希に分類が上手く行かないことがある
参考リンク §
メンバー アクセス演算子と式 (C# リファレンス)
サンプルソース: memberAccessOperator §
Console.WriteLine("文字列合体!");
string[] array = new string[] { "ONE", "TWO", "THREE" };
var r1 = string.Join(",", array);
Console.WriteLine(r1);
Console.WriteLine("文字列分離!");
string[] r2 = r1.Split(',');
foreach (var item in r2) Console.WriteLine($"{item}");
実行結果 §
文字列合体!
ONE,TWO,THREE
文字列分離!
ONE
TWO
THREE
リポジトリ §
https://github.com/autumn009/CSharpPrimer2
練習問題 §
以下のプログラムの実行結果を予測してみよう。ToStringメソッドは、指定した値を文字列に変換するメソッドである。
string? a = null;
Console.WriteLine(a.ToString());
- 何も出力されない
- nullが出力される
- 'null'が出力される
- "null"が出力される
- 例外が起きる
[[解答]]