基本用法 メソッドの引数 値を渡すか参照を渡すか 型と個数を指定 C#言語でメソッドを定義する場合、引数としてどんな型のパラメータを幾つとるのかを決める必要がある // 型と個数を指定 public void Method1(int id,string name) { // do some... 2020.10.31 基本用法
基本用法 構造体の初期化 クラスとはちょっと違う クラス(参照型)とは違い、構造体(値型)の初期化はちょっとクセがあります。 ・デフォルトコンストラクタ(引数なしのコンストラクタ)を定義できない (ゼロ初期化というデフォルト値で初期化するコンストラクタがコンパイラにより自動生成されるため... 2020.10.31 基本用法
基本文法 Tuple 複数の値をひとまとめ タプル型 C#7で追加された機能 .NET 4.7版以前の場合はSystem.ValueTupleをNugetする必要あり 複数の値をひとまとめにするための匿名の構造体のようなもの。 メソッドから複数の値を返す場合に数多の構造体定義を行う手... 2020.10.30 基本文法
基本文法 変数の型 object, var, dynamic 強い型付け(タイプセーフ) C#言語は、基本的には強い型付け(または静的型付け)の言語とされています。 これは、宣言される変数の型と、そこへ代入されるインスタンスの型は一致若しくは継承関係がある必要があるからです。 interface Ca... 2020.10.29 基本文法
基本文法 デリゲートとイベントとその使い方と デリゲート ・メソッドを参照するための型 ・C/C++でいうところの関数ポインタのような感じ class Program { // デリゲートの宣言 シグネチャ(戻値と引数リスト)が指定できればOK delegate void Sample... 2020.10.28 基本文法
基本文法 継承 基本の使い方 継承 継承とはオブジェクト指向言語で重要な概念であるポリモーフィズムを実現するものであり、親となるクラス(基底クラス)を指定することにより派生クラス側では親クラスの機能と自身のクラスに定義された機能とが使えるようになる機能です。 ・値型は継... 2020.10.27 基本文法
基本文法 匿名関数とローカル関数 使用頻度が高い 匿名関数 匿名メソッド式とラムダ式を合わせて匿名関数(Anonymous functions)という 匿名メソッド(anonymous method) class Sammple { static void SampleMethod(str... 2020.10.27 基本文法
基本文法 ジェネリック(ジェネリクス) 制約がまた増えた ジェネリック(ジェネリクス) ジェネリック(ジェネリクス)とは、型パラメータを指定することにより、その型に応じたクラスやメソッドなどを実現する機能のこと。 <T>のようにで指定する。 ジェネリッククラスとジェネリックメソッド class... 2020.10.27 基本文法
基本文法 C#言語の演算子 誤用しやすいのと新しいのと C#言語に定義されている多くの演算子は、その系譜であるDelphiやC/C++といった言語と同じようなものです。 ここでは、あまり見かけないものや最近追加されたものを簡単に紹介します。詳細は以下の公式で確認下さい。 公式ページはこちら C#... 2020.10.27 基本文法
基本文法 NULL許容値型とNULL許容参照型 NULL許容値型 最近まではNULL許容型と言っていた筈ですが、いつの間にやらNULL許容値型と呼称が変わってました。 これはC#8.0で追加されたNULL許容参照型の影響なのでしょう。 参照型の変数を宣言した場合、その値はNULLになりま... 2020.10.24 基本文法
基本文法 インデクサ 実装例と汎用定義と インデクサ クラスや構造体のインスタンスに対し、配列のように添え字でアクセスできるようにするための文法。 他のプログラミング言語でも見かけない珍しいものですが、使いどころもあまりないかも。 文字例の例 C#言語の文字列もインデクサを実装して... 2020.10.23 基本文法
基本用法 列挙体と日本語 問題とその解決法 列挙体と日本語の問題 列挙体(Enum)を定数とて定義する場合などに問題となるのが日本語の問題。 C#のコードはUTF-8なので日本語で書けないことないけど、 通常は列挙体や列挙子は英語もしくはローマ字表記となる。 こうした定義に対しVie... 2020.10.22 基本用法
基本文法 列挙体 基本定義と変換 列挙体 列挙体は列挙子リストという定数の集合から成る System.Enumを暗黙的に継承するちょっと特殊な値型 (このEnumに定義されるメソッド群を使えます) 定義した列挙体を継承することはできない enum TrafficSignal... 2020.10.22 基本文法
基本文法 プロパティ フィールドのようなメソッドのような プロパティ プログラミング言語においてプロパティという用語は多義的に使われますが、C#言語においてはアクセッサーの機能を持つ文法です。 Java言語やC++言語といった他のメジャーなプログラミング言語にはない機能です。 クラスが持つ状態を表... 2020.10.21 基本文法
基本文法 定数 定義方法とバージョニング問題 定数 C#言語にも#defineプリプロセッサはあるのですが、定数を定義するための用途では使われません CやC++系の言語とは違うので注意です const C#で定数を表すにはconstキーワードを指定します 値を設定するのは宣言時のみです... 2020.10.19 基本文法