インターフェイスで作業する場合、プロパティまたはメソッドからの戻り値、またはメソッドからの戻り値が2つのメソッドを実装していることを確認したい場合がよくあります新しいインターフェイスを作成することなく、より多くのインターフェイスを使用できます。C#複数のインターフェイスの実装を返すメソッドとのインターフェイス
具体的なインスタンスは、メソッドがINotifyCollectionChanged
もサポートするIEnumerable<SomeType>
という結果になるように指定したいということです。つまり、インターフェイスを使用する別のオブジェクトは型キャストする必要がなく、両方の設定にアクセスできます。 (私はReadOnlyObservableCollection
を明示的に使用したくないのは、ObservableCollection
オブジェクトでしかうまくいきませんが、私が望むのであれば、インターフェイスの将来の実装者のためにオプションを開いたままにしておきたいからです。)
私は、これが唯一の方法に対するパラメータで扱うことができることを考えて、mは、次のようにメソッドの宣言を提供することで、値を返さない:
void SetStringData<T>(T data) where T : IEnumerable<string>, INotifyCollectionChanged
をただ明確にするために、私が本当に欲しいことはどこ使ってクラスのものです正確な戻り値の型は指定できません。以下に似ていますが、明らかに構文が機能しない、あるいは理にかなっています。
(IEnumerable<string>, INotifyCollectionChanged) GetStringData()
どのように私はこれを行うことができますか?それとも、失敗しても、私はどのように同じ結果を達成できますか?
ええと、私は本当にこれが好きです - 私はクラスでこれを行う方法を認識していました。しかし、 'ContractClassAttribute'(http://stackoverflow.com/questions/2150983)で私はそれをインターフェース上で指定することができます。ありがとう! (私はまだC#標準に明示的な解決策を追加してほしいと思っています...) –