2011-02-26 4 views
0

나는 다음과 같은 코드가 있습니다은 여러 제약 조건을 가질 수

private int[] GetIds<T>(string nameString) where T : DomainBase 
    { 
     List<int> ids = new List<int>(); 
     if (String.IsNullOrEmpty(nameString)) 
      return ids.ToArray(); 

     [more code here . . . .] 

     return ids.ToArray(); 
    } 

난의 다른 contraint를 추가 할 수 있습니다 어쨌든이를 "T는 여기서"T뿐만 아니라 특정 인터페이스를 지원하기 위해 (IFoo DomainBase

답변

4

이외에 예)에 대한 시도

where T : DomainBase, IFoo 
+0

dang, 너무 빠름 :) –

0

물론, 단지 쉼표로 DomainBase 후 추가 :

private int[] GetIds<T>(string nameString) where T : DomainBase, IFoo 
0

물론 가능합니다. 당신의 제약이 .NET 상속 모델에 의해 제한되어 있으므로

private int[] GetIds<T>(string nameString) where T : DomainBase, INEOtherInterface 
{ 
... 
} 
1

같은 코드를 조정합니다. 따라서 하나의 클래스 만 제약 조건으로 사용할 수 있지만 인터페이스 수에는 제한이 없습니다. 다른 사람들은 훌륭한 코드 예제를 제공합니다.

관련 문제