2009-09-26 7 views
1

자식 클래스에서 추상 클래스에 멤버의 유형을 무시하기 : 컴파일 오류가 발생어떻게 코드를 다음 한

public abstract class TestProperty 
{ 
    public abstract Object PropertyValue { get; set; } 
} 

public class StringProperty: TestProperty 
{ 
    public override string PropertyValue {get;set} 
} 

, 내가 실현하려 위해 TestProperty에서 제네릭 형식을 사용해야합니다 궁금 내 자식 클래스에서 같은 이름의 다른 유형을 갖는 목표는 무엇입니까?

답변

6

예, C#은 공변 반환 유형을 지원하지 않습니다. 당신은 실제로 여기에 제네릭을 사용할 수 있습니다

public abstract class TestProperty<T> 
{ 
    public abstract T PropertyValue { get; set; } 
} 

public class StringProperty : TestProperty<string> 
{ 
} 

이 시점에서 오버라이드 (override) 할 필요는 없습니다 - 당신은 다른 작업을 수행하려고하지 않는 한 실제로, 당신은뿐만 아니라 완전히 StringProperty 제거 할 수 있으며 단지 TestProperty<string>를 사용합니다.

관련 문제