일부 오래된 C# 코드를 유지 관리하고 구조를 너무 많이 변경할 수 없습니다. 나는 기존의 컴파일러 경고를 안전한 방법으로 줄이려고했다. 특정 함수는 다음과 같은 경고 메시지를 표시합니다.C# 함수를 비공개로 설정하거나 final로 선언하거나 선언 형식을 봉쇄
경고 CS0108 '함수 (문자열, 문자열)'는 상속 된 멤버 'xyz.Function (string, string)'을 숨 깁니다. 은폐가 의도 된 경우 new 키워드를 사용하십시오.
저는 상속 된 함수를 숨기는 것이 소프트웨어가 수년 동안 성공적으로 사용되어 왔기 때문에 의도적이라고 가정합니다. (문자열을
경고 CA2222 제조사 '기능을 : 나는
예상대로 경고가 사라private new void Function(string parm1, string parm2)
이 함수 선언을 만들기 위해 "새로운"키워드를 추가에 전혀 해 보지 않았다, 그러나 이것은 대신 등장 문자열) '비공개, 최종으로 표시하거나 선언 유형을 봉인하십시오. 이 메소드는 원래 기본 클래스 'BaseClassName'에 정의되어 있습니다.
이 경고를 표시하는 것 외에도 가장 안전한 (즉, 비 행동 변화) 옵션이 무엇인지 알려 드리고자합니다. 나는이 방법을 비공개로 만들어야한다고 생각하지 않는다. (나는 이것을 "대중"이라고 생각한다.) 최종 또는 봉인하는 방법과 올바른 방법이 될 수 있는지 여부는 확실하지 않습니다.
는 원래 경고 클래스의 일부 자세한 내용을 줄 수있는
virtual
키워드를 제거하는 것입니다하는 경우 (새로운 키워드를 사용하십시오 ...) 그리고 확장하는 클래스? 원래의 의도가 원래 기능을 가상으로 표시하고 확장 기능을 무시로 표시 할 가능성이 높습니다. 그래도 더 자세한 정보가 필요합니다. – rolls
기본 클래스에서 "보호 된"함수 일 수 있습니까? –
이 위의 코드가 숨어있는 기본 클래스의 메서드 정의입니다 : \t 공공 추상 클래스 BaseCodeListPage :베이스 페이지 ... \t \t 보호 무효 AddOnClientClick (문자열 PARM1, 문자열 parm2의) \t \t { \t \t ... \t \t} –