2011-04-02 11 views
1

のは、fooは2つのオーバーロードがありましょう:拘束タイプのarg

void Foo(int[] array) { ... } 
void Foo(int[,] array) { ... } 

私は関数にはFooを呼び出す関数のバーを、書いた、と私はバーの[]はint型とint型の両方をサポートしたいです私は、一般的なバーの方法を1つだけ作成することにより、コードの重複を削除する

void Bar(int[] array) 
{ 
    // do some work here, and finally call Foo: 
    Foo(array); 
} 

void Bar(int[,] array) 
{ 
    // do some work here, and finally call Foo: 
    Foo(array); 
} 

:[、]引数ので、私はこれを持っています。擬似コード:

void Bar<TArray>(TArray array) 
    where TArray is_a_type_accepted_by Foo 
{ 
    // do some work here, and finally call Foo: 
    Foo(array); 
} 

これは可能ですか?

答えて

2

いいえ、C#ではこのような制約はありません。

関連する問題