2010年11月19日
川俣晶の縁側ソフトウェア技術雑記total 9237 count

C#でclass A : B<A>はありか?

Written By: 川俣 晶連絡先

「こんなコードを書いている。書いたのはけっこう前だけどね」

  • public class Item : SimpleName<Item>

「これ通るの?」

「うん。通る」

「たまたま通るだけ? 書いていいの?」

「問題はそこだ。ずっとこの書き方でいいのか確信が持てなかった」

「そうか」

「でも状況が変わった」

「というと?」

MSDNのEnumerable.Max<TSource>メソッドのドキュメントにあるサンプルソースだ。肝心の1行だけ引用するぞ」

  • class Pet : IComparable<Pet>

「えーっ。構造としては同じじゃないか」

「うん。インターフェースとクラスの違いはあるが同じだ」

「問題はそこじゃないものね。クラスの定義の中で継承元としてその名前をジェネリックの型引数として使えるのかってことだからね」

「でも、こうして見ると使えるのが当然であることが分かる」

「そうだね。ジェネリックとして比較インターフェース実装するなら、自分自身が型引数として指定できないと継承できない」

「この書き方はMSDN的にOKらしい、ということで今日の話はおしまい」

「先輩、こういう話にこだわってるっすね」

「FizzBuzzとか、おいらのソースに関係ない話は興味ないけどな。これは関係あるから」

「論よりソースっすか?」

「もちろん、ある程度マスのある機能するソースな」

「短いソースじゃ分からないってことっすね」

「うん。ある程度の規模のあるソースだと汎用性の高い基本クラスを整備する必要があるが、そこから出てきた事例だ」

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2010年
11月
21日
「技術力がある」とは実際には何を意味しているか?
3days 0 count
total 4848 count
【技術雑記】の前のコンテンツ
2010年
11月
17日
続々々々・パソコン雑誌戦線に異状有り?
3days 0 count
total 3389 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20101119151625
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.