죄송합니다. 어리석은 질문이거나 이미 요청한 경우입니다. 그래서 여기 ... 지금이 권리를 테스트 할 수 있도록 내가 주변에 인터넷 검색을 해봤 내가있는 위치에 정말 아니에요은 간다 :C#의 메소드가 다른 메소드를 오버라이드하고 동시에 가상 일 수 있습니까?
사진이 시나리오 다음과
public class Bottom
{
virtual public void foo()
{
doTheThing();
}
}
public class Middle : Bottom
{
virtual override public void foo() //this function will both override the parent's foo() and letting its child's foo() be over ridden
{
base.foo();
doTheOtherThing();
}
}
public class Top : Middle
{
override public void foo()
{
base.foo();
doTheFinalThing();
}
}
가운데 하나 의견은 제가 묻는 것입니다.
괜찮습니까? 그것은 전통적인 것인가? 올바른 순서로 키워드가 있습니까? 그게 그렇게 중요한 건가? 이 작업을 수행하는 가장 올바른 방법은 무엇입니까?
가상 메서드는 가상의 모든 방법을 사용하면 아무 것도 할 필요가 없습니다. 따라서 중간 버전에서 "가상"키워드 만 제거하십시오. – Evk
질문하기 전에 관심있는 코드를 컴파일 해보십시오. 현재 코드에서 컴파일 타임 오류가 발생하므로 분명히 "할 수있는 일"이 아닙니다. –
[documentation] (https://msdn.microsoft.com/en-us/library/ebca9ah3.aspx)를 확인하십시오. "새 메서드, 정적 또는 가상 한정자를 사용하여 재정의 메서드를 수정할 수 없습니다. 재정의 된 속성은 가상, 추상 또는 대체 여야합니다. " –