しらとりのブログ

社会人ひよこプログラマのtil

C#

C#で競プロするときの標準入力取得コード(LINQ)

コピペ用です。 実行速度よりも提出速度を速めたいのでそっち系のコードです。 /* 入力系 */ // S string S = Console.ReadLine(); // N int N = int.Parse(Console.ReadLine()); // A1,A2,A3,... int[] an = Console.ReadLine() .Split(' ') .Select(int.Pa…

メソッドグループとは

C#

int→string変換のコードを書きます。 int i = 10; string s = i.ToString; このコードは以下のコンパイルエラーが出ます。 CS0428 メソッド グループ 'ToString' を非デリゲート型 'string' に変換することはできません。このメソッドを呼び出しますか? 上記…

switch文を消す黒魔術

C#

ラムダ式勉強中に錬成されてしまったもの。 var commandDict = new Dictionary<object, Action>() { // コマンドID, コマンド { CommandId.hoge, ()=> hogehoge() }, { CommandId.fuga, ()=> fugafuga() }, { CommandId.piyo, ()=> piyopiyo() } } showCommandDict[CommandId</object,>…

varはobject型ではありません

C#

なんでも入る型じゃないです。知っている型だけ。 型推論 インスタンスを生成するコードを書きます。 Character character1 = new Character(); Dictionary<int, string> FooDictionary = new Dictionary<object, Action>(); 明らかに冗長な部分があります。型宣言とコンストラクタです。v</object,></int,>…

immutableについて考える

不変(immutable)オブジェクトについて考えを整理する備忘録です。C#を前提にいろいろ考えます。 C#のデータ型についての前提 そもそもC#のデータ型が結構複雑です。値型、参照型、プリミティブ型、組み込み型、複合型、ユーザー定義型、etc。 難しい。。。私…

ややこしい委譲の意味

C#に触れていると委譲の意味で混乱することがあるので整理しておきます。 Javaに真の委譲は無い 一般に委譲といえばこちらのイメージ。 コンポジションと転送の組み合わせで処理を委譲する。 Javaのサンプルコード class Operation { public int sum(int x, …