複数の汎用制約を追加することが可能かどうか疑問に思っていましたか?C#複数の汎用制約
は、私は、オブジェクト(電子メール、電話またはアドレスのどちらかを)かかりAddメソッドを持っているので、私はのようなものを考えていた:
public void Add<T>(T Obj)
where T : Address
where T : Email
where T : Phone
{
if (Obj is Address)
m_Address.Add(Obj as Address);
else if (Obj is Email)
m_Email.Add(Obj as Email);
else
m_Phone.Add(Obj as Phone);
}
しかし、私は入れません:
"A constraint clause has already been specified for type parameter 'T'. All of the constraints for a type parameter must be specified in a single where clause."
だから、どのように他の通常のIEnumerableのような**強く型付けされた汎用コレクション** '異質types'の上で列挙するには? –
@AngshumanAgarwal - 私はこれがコレクションに 'Add'メソッドではないと思っています。 –
もし 'IWalk、IRun、IBothWalkRun'というインターフェースがあるとします。今、IWalk、IRun、およびIBothWalkRunをすべて印刷するように、すべての型から強く型付けされた異種コレクションを作成して繰り返したいのですか?それは意味がありますか? –