備忘録

政治/経済/自動運転/Python/Robotics

C#

Visual Studioはすごい

C#

C, C++は仕事でばりばり使ってて、 pythonもちょいちょい触ってるけど、 C#は独習C#読んだ後、完全に放置しててもったいないと思ったので Visual C#をやりはじめました。 Head First C#, Third Edition 神本。表紙からしておもろいのがわかると思う。 くそ分…

ジェネリック

C#

ジェネリック::C++でいう実行時template<T>みたいなもん(だと勝手に思ってる) C#2.0でジェネリックが登場する以前は、さまざまなデータを操作する汎用的なコードを実装する際に、object型の参照変数が利用されていた。ジェネリックは、実行時の型キャストを</t>…

interfaceとC#の構造体、列挙型

C#

1.インターフェイス interface クラスで実装されるべきメソッドの組み合わせを定義したもので、メソッドの実装をもたない。メソッドの処理の中身は記述しない。基本public。 public interface ISeries { int GetNext (); void Reset (); void SetStart (in…

C#の継承について

C#

1.派生クラスから、基本クラスのprivateメンバーをアクセスする方法 a) privateなデータへのアクセスを提供するpublic propertyを使う b) protectedメンバを使う 注1) C++と違って、継承時に基本クラスのアクセス指定子は書けない 2.protectedメンバ pro…

Overloaded Operator, Indexer, Property

C#

メモ 代入演算子はオーバーロードできない get, set←value indexer, propertyは記憶領域をもたないため、参照で渡せない accessorに修飾子をつけてよい 自動実装するproperty:: public int UserCount {get; set; } <Indexer> class SampleCollection<T> { // Declare an </t></indexer>…

C#のメソッドとクラスの詳細

C#

1.メソッドにオブジェクト参照を渡す 参照渡しであるので、呼び出し元にも変更が反映される。 2.参照パラメータ ref 宣言時にも呼び出し時にもrefを変数の前につける 値渡しでなく参照で渡せる。 refで渡す引数には値を代入しておかなければならないこと…

C#のオブジェクトは参照型であり、配列はオブジェクトである!!!

C#

クラスのインスタンスの作成: Vehicle minivan = new Vehicle(hoge, piyo); 参照型であることに注意!!! 配列のインスタンスの作成: C#の配列はオブジェクト型であるのです! 書式1: int sample = new int[10]; 書式2: int sample; sample = new int[10]…

C#のswitch文: no fall through rule

C#

no fall through rule: C#では、1つのcaseに対応する一連の文の処理に引き続いて、次のcaseの処理にそのまま入っていくこと(fall through)は認められていない。

暗黙的な型変換: 代入演算子

C#

以下の条件下でwidening conversionが行われる 1.2つの型に互換性がある 2.変換先の型のサイズが元の型のサイズよりも大きい

C#の論理演算子:ショートサーキット評価

C#

! (NOT) ^ (XOR) & (AND) && (AND: short circuit) | (OR) || (OR: short circuit) short circuit:: 前から評価していって、bool値(true or false)が確定すると以降評価しない

C#の出力オプション

C#

書式1 Console.WriteLine("hoge" + 1 + "piyo" + 2); 書式2 Console.WriteLine("フォーマット文字列", arg0, arg1, arg2, ...); フォーマット文字列にはフォーマット指定子を含んでよい。 フォーマット指定子:: {引数の番号, フィールド長: フォーマット} …

decimal型

C#

.NET Frameworkによってサポートされた数値型。 e-28 ~ e+28 まであらわせる。 通常の浮動小数点だと丸め誤差がうざいときに使う。 decimal型の定数の後には、接尾辞mまたはMをつけなければならない。