エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください
Twitterで共有ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
この記事はC# Advent Calendar 2015の5日目の記事です。 C#は、静的型付けのプログラミング言語で、ジェ... この記事はC# Advent Calendar 2015の5日目の記事です。 C#は、静的型付けのプログラミング言語で、ジェネリクスを持っています。ジェネリクスによって汎用性と型安全性を備えたコードを書けるのですが、それでも「C#のジェネリクスだとうまく書けないな」と思うようなケースもたまにあります。そんな例を2つほど紹介します。そして、他のプログラミング言語ではどうなのか、そしてC#ではこうする/こうしている、という解決法も書いてみます。 ジェネリックなコードで四則演算 C#ではジェネリックなコードで算術演算子を呼べません。 これは、演算子は静的メソッドとして型ごとに実装されているため、呼び出したい演算子が型パラメータTに定義されていることを要請する型制約を書く方法がない(だけでなく、コンパイル結果のILにもそのような制約を持たせる方法がない)からです。 Haskellでは 型クラスとい