이 질문은 프로젝트 요구 사항이나 문제보다 호기심이 부족합니다.다른 언어를 사용하는 프로젝트에서 비 CLS 호환 코드를 숨기는 방법?
하나의 언어 (예 : C#)의 비 CLS 규격 코드가 있으며 현재 언어 (프로젝트 전체에서 내부 선택을 할 수 없도록 선택)와 같은 방식으로 사용해야합니다. 다른 시간 (예를 들어 VB)에서 컴파일 타임 오류가 발생하지 않고 충돌하는 구현을 호출 할 수 있도록 허용하려고합니다. 예를 들어
,//C#
public class SecurityService
{
....
public void Print()
{
Console.WriteLine("print"); //This method prints Service Name in lower case
}
public void PRINT()
{
Console.WriteLine("PRINT");//This method prints service name in UPPER case.
}
}
'VB.Net
Module ServiceReader
Sub Main()
Dim service As New SecurityService()
service.print() 'Compile time error: print is ambiguos
End Sub
End Module
문제 : 어떻게 든 C# 프로젝트가 원하는 호출 할 수 있도록 교차 언어 프로젝트에서 내 '인쇄'방법 (중 하나를 숨겨 여기에 컴파일 시간 오류를 방지 할 필요가 이행).
관심을 가져 주셔서 감사합니다.
둘 다'public'이 필요하면'PRINT'의 이름을'PrintUpperCase'로 바꾸십시오. –
'PRINT'가베이스의 일부이고'print'가 다른 것의 일부인 더미 상속 레이어를 추가하면 어떻게 될까요? C#은 코드와 정확히 일치하는 버전을 사용하지만 VB.NET은 행복하게 "Print"의 대문자/소문자 형식을 사용하여 파생 클래스 버전을 사용할 것으로 기대합니다. 그러나 시도하지 않았습니다. – supercat