戻る

C#ノート

変数の種類

    1. 組み込み型 :あらかじめ
    2. ユーザー定義型
    1. 値型
      • 値型の値渡し 実引数をメソッド側の仮引数にコピー
      • 値型の参照渡し ref「値を参照渡しとして処理する」
    2. 参照型
      • 参照型の値渡し 参照型のアドレス値をメソッド側の仮引数にコピー
      • 参照型の参照渡し 通常が参照渡し

out「引数と因数の前に付けることで呼び出し元の変数にメソッド処理後の値を格納できる。」

トップへ

値

トップへ

メソッド

可変長引数を持つメソッド

トップへ

継承

  1. 基底クラス
  2. 派生クラス
オーバーライド 基底クラスでvirtualを付与、派生クラスでoverrideを付与することで可能。オーバーライドの禁止はメソッドにsealedを付与。

継承時のコンストラクター

基底クラスのコンストラクター→派生クラスのコンストラクターの順に実行

継承時のデストラクター

派生クラスのデストラクター→基底クラスのデストラクターの順に実行

トップへ

アップキャスト

「派生クラスから基底クラスへの変換」→常に可能。

ダウンキャスト

「基底クラスから派生クラスへの変換」→常に可能ではない。

トップへ

拡張メソッド

  1. staticクラスのstaticメソッドである必要がある。
  2. 第一引数にthisをつけて拡張するクラスを指定する。
  3. using命令で拡張元のクラスを
トップへ

ポリモーフィズム

「基底クラス型の変数を宣言し、派生クラスのオブジェクトを代入して、関数を呼び出した場合、変数の型ではなくオブジェクトの種類に依存して関数が実行される。つまり基底クラスに宣言された関数とそれを継承したクラスの関数ではオブジェクトに依存して関数は実行される。」

名称

  1. 抽象メソッド「中身を持たない関数」
  2. 抽象クラス「抽象メソッドを含むクラス」

トップへ

インターフェイス

「複数継承したい場合の抽象クラス、派生クラスは複数のインターフェイスを持つことができる」

明示的なインターフェイス実装

「異なるインターフェイス同士に同名のメソッドが存在する場合にメソッドの識別を行うことができるようにすること」


トップへ

例外処理

catchブロックの記述順序通りに優先して例外があった場合は処理を行う。


列挙体

データ型に指定できる型

byte,sbyte,short,ushort,int,uint,long,ulong

  1. 値は以降順列で定まる。
  2. ToString関数で名前を取得できる。

トップへ

構造体

  1. new演算子を付けずとも変数を定義した時点でメモリ確保される。
  2. デフォルトコンストラクター、デストラクターを定義できない。
  3. 定数、静的フィールド以外に初期値を指定できない。
  4. インターフェイスのみ継承可能(継承に関する修飾子、staticは利用できない。メンバーにはstaticを利用可)
  5. コンストラクターですべてのフィールドを初期化しないとならない。

入れ子クラス

  1. 基底で包含クラスの外からはアクセスできない。
  2. 入れ子になっていないクラスをトップレベルクラス
  3. using static トップクラス;と宣言することで外部参照可能。

パーシャルクラス

  1. 一つのクラスを複数のファイルで分割して定義ずる機能。
  2. パーシャルクラスでのみ定義可能
  3. privateメソッドのみ
  4. 戻値はvoidのみ
  5. 出力引数outは利用不可。(ref,parmは利用可)
  6. メソッドがなくてもエラーにならない。

トップへ

ジェネリック

  1. 型パラメーターを宣言する必要がある

トップへ

コンソールの非表示(初回一瞬だけ表示)

コンソールを表示しないためには、コンソール・アプリケーションのプロジェクト・プロパティの[アプリケーション]タブを開き、C#の場合は[出力の種類]を「コンソール アプリケーション」から「Windows アプリケーション」に、Visual Basicの場合は[アプリケーションの種類]を「コンソール アプリケーション」から「Windows フォーム アプリケーション」に切り替えればよい。


トップへ

SQLの利用

�T.Setting.csの作成

  1. ソリューションエクスプローラのアプリ名を右クリックしてプロパティーを開く。
  2. 設定ページで[名前]に任意の名前、[種類]を(接続文字列)、[スコープ]をアプリケーション、[値]には下記を入力

�U.App.configファイルの記述

  1. タグ内に下記を記述しているか確認。

トップへ

スレッド処理、タスク処理

Threadの場合:

Taskの場合:

排他的処理

排他的処理の書き方

※排他的処理は空のobjectを作りlockで指定した処理をobjectとして保持することで可能となるのかもしれない。(つまり、作成した空のオブジェクトは、処理を保存するための場所として指定処理を格納することを()内に示しているのかもしれない。)

async修飾子、await演算子

戻り値無:

戻り値有:

トップへ