문제

다음 코드가 있습니다.

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

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

컴파일 오류를 생성하는 것은 어린이 수업에서 다른 유형의 이름을 갖는 목표를 달성하기 위해 TestProperty의 일반 유형을 사용해야하는 것이 궁금합니다.

도움이 되었습니까?

해결책

예, C#은 공분산 반환 유형을 지원하지 않습니다. 여기에서 제네릭을 사용할 수 있습니다.

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

public class StringProperty : TestProperty<string>
{
}

이 시점에서 무시할 필요가 없습니다. 실제로 다른 일을하지 않는 한, 당신은 StringProperty 완전히 사용합니다 TestProperty<string>.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top