2017-12-14 9 views
-1

C#에 대한 지식이 거의 없습니다.인터페이스, 제네릭, C#

다음 작업을 수행하는 올바른 방법은 무엇입니까?

목표는 다양한 구조체에서 작동 할 수있는 getvalue()으로 인터페이스를 만드는 것입니다.

public interface IBOB<T> where T:struct 
{ 
    T GetValue(); 
} 
다음

YAY:IBOB<bool>을하고 지원하는 다른 어떤 종류 : 때문에/해상도를 이름에, 당신이해야 할 수도

class YAY : IBOB<bool> 
{ 
    public bool GetValue() 
    { 
     return true; 
    }  
} 

참고

public interface IBOB 
{ 
    T GetValue<T>() where T:struct 
} 

class YAY:IBOB 
{ 
    public bool GetValue<bool>() 
    { 
     return true; 
    } 
} 
+0

자세한 정보가 필요합니다. – Greg

답변

4

나는 당신이 될 것입니다 무엇을 의미하는지 의심 여러 유형에 대한 명시 적 인터페이스 구현을 사용하십시오.

class YAY : IBOB<bool>, IBOB<int> 
{ 
    bool IBOB<bool>.GetValue() => true; 
    int IBOB<int>.GetValue() => 42; 
} 

YAY:IBOB (원본) 경우에, 당신은 일반적으로 방법을 필요 :

public bool GetValue<T>() {...} 

이 그렇지 않으면 서명 일치하지 않습니다.