お知らせ

次の項目は別ページに分割しました。

関連ページ:

クラス

公式サイト:

クラス | Microsoft Learn [公式]

基本的概念

ドキュメント:

C# のクラス/構造体/レコード | Microsoft Learn [公式]

メンバ変数/プロパティ

  • メンバ変数クラスに定義されたインスタンス毎に値の異なる変数/「フィールド」とも呼ばれる
  • プロパティメンバ変数の読み書きをゲッター/セッターと呼ばれるメソッドでラップしたもの
  • ゲッターラップしているメンバ変数の値を読み出すメソッド
  • セッターラップしているメンバ変数に値を書き込むメソッド

ドキュメント:

メンバー | Microsoft Learn [公式]

プロパティ | Microsoft Learn [公式]

参考:

プロパティ?フィールド?メンバー? C# のクラス構造のおさらい – Qiita

C# におけるメンバ変数とプロパティの違い | w2ソリューション株式会社

プロパティとフィールド/メンバ変数の決定的な違い! | エンジニアが送る穴倉生活のすゝめ

C# のプロパティを使いこなそう!さまざまな実装方法を紹介 | FEnet インフラ

配列型のプロパティの実装 | iPentec

Using getter / setter for an array – Stack Overflow

getters / setters for the array – Stack Overflow

継承

C# では、派生クラスのインスタンスは基底クラスの変数に代入することが出来ます。

—— 未確認飛行 C

基底クラスの引数ありのコンストラクタを呼び出すには、base 初期化子を使う。

class Derived : Base
{
    public Derived(Type1 arg1, Type2 arg2) : base(arg1, arg2)
    {
        // ...
    }
}Code language: C# (cs)

ドキュメント:

継承 | Microsoft Learn [公式]

参考:

クラスの継承について | ヤスノートは今日も考える

継承 | 未確認飛行 C

コンストラクタの継承/引数あり | 佐々木屋

コンストラクタの継承 | Ararami Studio

継承におけるコンストラクタとデストラクタ | WisdomSoft

引数ありの基底クラスのコンストラクタを呼び出す | …Inertia

コンストラクタの継承について | .NET コラム

クラスの継承の仕組みとサンプル | ITSakura

オーバーライド (override)

ドキュメント:

override キーワードと new キーワードによるバージョン管理 | Microsoft Learn [公式]

override キーワードと new キーワードを使用する場合について | Microsoft Learn [公式]

override 修飾子 | Microsoft Learn [公式]

参考:

オーバーライド | 超初心者向けプログラミング入門

virtual

ドキュメント:

virtual | Microsoft Learn [公式]

参考:

virtual / overide の意味がわかる例 – Qiita

virtual と override によるメソッドの上書き | (void*)Pないと

virtual, override, new | やる気がストロング ZERO

多態性/ポリモーフィズム

キーワード
  • virtual メソッドを仮想として宣言/定義する
  • override 派生クラスで仮想メソッドの実装を定義する
  • abstract クラスあるいはメソッドを抽象として宣言/定義する

ドキュメント:

ポリモーフィズム | Microsoft Learn [公式]

参考:

多態性 | 未確認飛行 C

ジェネリッククラス

こちらのページを参照

ドキュメント:

ジェネリッククラス | Microsoft Learn [公式]

ジェネリッククラスとメソッド | Microsoft Learn [公式]

キャスト

参考:

C# における as によるキャストと括弧によるキャストの違い – Qiita

C# でキャストと as 演算子を使いこなす | Ararami Studio

C# のキャスト/型変換 | Ararami Studio

キャストで型変換 | ヤスノートは今日も考える

キャストと型変換 | Microsoft Learn [公式]

パターンマッチング/is 演算子/as 演算子を使用して安全にキャストする方法 | Microsoft Learn [公式]

型のテスト演算子とキャスト式 | Microsoft Learn [公式]

インデクサー

プロパティ名を this としてインデクサーを実装する。本体としてゲッター及びセッターを記述する。

public ReturnType this[KeyType key]
{
    get { return _array; }
    set { _array = value; }
}Code language: C# (cs)

ドキュメント:

インデクサー | Microsoft Learn [公式]

参考:

インデクサ について – Qiita

インデクサーについて | ヤスノートは今日も考える

インデクサ | やってみる

インデクサー | 未確認飛行 C

インデクサ | C# 入門

インデクサーの実装 – クラスの添え字アクセスに対応する | iPentec

図で理解するインデクサの基礎 | 趣味や仕事に役立つ初心者 DIY プログラミング入門

インデクサ | C# プログラミング再入門

インデクサーを使ってプログラミングをする | .NET コラム

getters / setters with C# array – Unity Answers

How do define get and set for an array data member? – Stack Overflow

getter and setter expression for array property – Stack Overflow

Using the adressed index in an array setter / setter – Stack Overflow

抽象クラス (abstract)

ドキュメント:

abstract | Microsoft Learn [公式]

参考:

抽象メソッド/抽象クラス | 未確認飛行 C

抽象クラス | 超初心者向けプログラミング入門

抽象クラス | WisdomSoft

抽象クラス (abstract) の使い方を学ぶ | XR-Hub

抽象クラス (abstract) とは?継承や override の手順や使い方をご紹介 | Rainbow Engine

抽象クラス | 一週間で身につく C# 言語の基本

C# の abstract class とは?インターフェイスについても併せて解説! | .NETコラム

abstract – 抽象クラスと抽象メソッドのサンプル | ITSakura

Abstraction | W3Schools

const / static / readonly

参考:

const と readonly と static readonly、それぞれの特徴と使い分け方 – Qiita

const と static readonly の違い – Qiita

const と static readonly の違いと使い分け | PG 日誌

const / readonly / static readonly の使い方/違いについて | nyanblog

定数 | 未確認飛行 C

const と static read only の違いと使い分けについて – スタック・オーバーフロー

‘static readonly’ vs. ‘const’ – Stack Overflow

派生クラスを判定する

派生クラスを判定するには is 演算子を用いる。C# 9.0 以降では、否定の is not が使える。

  • is左辺のオブジェクトが右辺のクラスから派生しているか判定する
  • is not派生していない場合に真となる (C# 9.0 ~)
こちらのページを参照

ドキュメント:

型のテスト演算子とキャスト式 | Microsoft Learn [公式]

is 演算子 | Microsoft Learn [公式]

参考:

is 演算子と typeof の型判定の挙動の違い | PG 日誌

型を判別する typeof と is 演算子 | Ararami Studio

インスタンスや型が一致するか/インターフェイスやクラスから派生しているか判定する | smdn.jp

is 演算子の否定 | ぷろぐらまアンジーのメモノート

オブジェクトが特定のクラスを継承しているかをチェックして処理分けする | Long-Slow-Distance

派生クラスのオブジェクトを返したい

ドキュメント:

共変な戻り値 | Microsoft Learn [公式]

参考:

戻り値の共変性 | 未確認飛行 C

possible to override a return type on derived classes? – Stack Overflow

override a property and return a derived type – Stack Overflow

Can I override with derived types? – Stack Overflow

インスタンスを破壊/削除する

new で作成したインスタンスは、null を代入する。どこからも参照されなくなったオブジェクトは自動的に回収される。

var obj = new Object();
// Use the object here
obj = null;Code language: C# (cs)

参考:

How to delete object? – Stack Overflow

まとめ

クラス | 未確認飛行 C

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA