C#

C# で、変数に代入したかどうかで値が変わってしまう不思議なコード

C#

この前の Java で NaN や Infinity を int にキャストしたときの値 を C# でやってみたら、面白い挙動になったのでメモ。 C# で NaN や Infinity を int にキャストしたときの値 C# で NaN や Infinity を int にキャストしてみたところ、結果はいずれも "0"…

JavaとC#で、フィールドの初期化順序が違う (JavaプログラマーがC#でプログラムを書いて引っかかったところ その5)

C# の本を読んでいたら、クラスのフィールドの初期化順序が Java と違っていてびっくりしました。 Java のフィールド初期化順序 Java でインスタンスを作成した場合、親クラスのフィールド初期化 → 親クラスのコンストラクタ実行 → 子クラスのフィールド初期…

JavaとC#で、文字列と null を結合したときの結果が違う (JavaプログラマーがC#でプログラムを書いて引っかかったところ その4)

Java と C# で、文字列と null を結合したときの結果が違います。 // Java System.out.println("abc," + null); // C# Console.WriteLine("abc," + null); Java の場合、結果は「 abc,null 」です。 C# の場合、結果は「 abc, 」です。 文字列と null を結合…

LINQの拡張メソッド一覧と、ほぼ全部のサンプルを作ってみました。

C#のLINQメソッドは超便利!!、なんですが…肝心のAPIがわかりづらいです。 そこで、種類ごとにまとめて、簡単なサンプルを書いてみました。 結果の表示に、独自の拡張メソッド ToResult(this IEnumerable) を使用しています。このメソッドは、本文の最後に記…

JavaとC#の命名規約まとめ (JavaプログラマーがC#でプログラムを書いて引っかかったところ その3)

よくごっちゃになってしまうので、Java と C# の命名規約をざっとまとめてみました。 種類JavaC#(.NET) クラスPascalPascal インタフェースPascal(例:List)"I" + Pascal(例:IList) パッケージ / ネームスペースCamel(例:java.net)Pascal(例:Syste…

JavaプログラマーがC#でプログラムを書いて引っかかったところ その2

C#

Javaで動くので、C#でも動くと思ったんですが・・・。 条件演算子(三項演算子)で、:の左側と右側に共通のインタフェースを持つ別のクラスを書くと、コンパイルエラーになりした。 /* -- Java -- */ public interface X { ・・・ } public class A implements X…

JavaプログラマーがC#でプログラムを書いて引っかかったところ その1

C#

案件が変わり、仕事で使う言語がJavaからC#に変わりました。 その際に、C#でプログラムを書いていて引っかかったところをメモしておきます。 とりあえず、連想配列(Dictionary)を使ったときのことをメモ。 書き方の違い C#は、連想配列用に言語仕様が用意さ…