インターフェイスの明示的実装 #28

Open
ufcpp opened this Issue Aug 19, 2015 · 1 comment

Projects

None yet

1 participant

@ufcpp
Owner
ufcpp commented Aug 19, 2015

みんな明示的実装が好きすぎることが判明したので足すか。

  • IEnumerable.GetEnumerator とか ICollection<T>.IsReadOnly とかの残念だから public にしたくない系
    • 1度publicにしたもの、APIの追加は楽だけど、削除はできない
  • internal set 隠し
    • internal interface 実装できるのとの組み合わせ
  • コード生成・リフレクション都合の非ジェネリック object X { get; } (別途ジェネリックnew T X { get; })

IntelliSense に出なくなるってのを活用する系統の話。多少、黒魔術系含む。

あと、普通に衝突回避系の話もちょっと追記

  • class Base : IComparable<Base> からの class Derived : Base, IComparable<Derived> みたいな奴
@ufcpp
Owner
ufcpp commented Dec 20, 2015

以下の2点のぞいて反映

  • internal set 隠し
  • 非ジェネリック object X { get; } (別途ジェネリックnew T X { get; })

http://ufcpp.net/study/csharp/oo_interface.html?p=4

そもそも複数インターフェイス実装できるって話自体なかったのでそれもついでに追記済み。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment