0
와 일반 클래스가 아닌 일반적인 인터페이스를 구현하는 방법에 내 코드입니다 :C#을 여기 제약
public interface ICar
{
CarModel Property { get; set; }
CarModel Method();
}
public Car<T> : ICar where T : CarModel
{
T Property { get; set; }
T Method()
{
//Do Stuff
}
}
내가 제네릭 제약 조건 내 Car<T>
클래스의 인터페이스를 구현하지만 컴파일하지 않습니다 다음과 같은 오류 : https://dotnetfiddle.net/m1jDnB
내가 가지고 주위에있는 유일한 일 :
Compilation error (line 18, col 15): 'Car<T>' does not implement interface member 'ICar.Property'. 'Car<T>.Property' cannot implement 'ICar.Property' because it does not have the matching return type of 'CarModel'.
Compilation error (line 18, col 15): 'Car<T>' does not implement interface member 'ICar.Method()'. 'Car<T>.Method()' cannot implement 'ICar.Method()' because it does not have the matching return type of 'CarModel'.
내가 또한 비 일반 될 인터페이스를 필요로 여기에 닷넷 바이올린입니다 왜냐하면 원하는대로 인터페이스를 구현하는 무언가로 속성이나 메서드를 래핑하는 것입니다.하지만이 작업을 수행하고 싶지 않습니다. 예 :
public Car<T> : ICar where T : CarModel
{
T Property { get; set; }
T Method()
{
//Do Stuff
}
CarModel ICar.Property
{
get {return Property; }
set {Property = (CarModel)value; }
}
CarModel ICar.Method()
{
return (CarModel)Method();
}
}
더 좋은 방법이 있습니까?
빌드 오류는 묵시적 메서드가 값을 반환하지 않는 것처럼 보입니다. – markmnl
'자동차'이 (가) 설계에 허용됩니까? ('MyCarModel'은'CarModel'에서 상속 받았습니다.) –
@markmnl, 죄송합니다. 위의 내용과 같이 변경된 내용을 작성한 것에 미안합니다. –