이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 40372|회답: 0

[출처] .NET (CLS) 공개 언어 명세서

[링크 복사]
2021-1-11 11:43:49에 게시됨 | | | |
.NET은 별도의 언어입니다. 즉, 개발자로서 .NET용 여러 언어(예: C#, C++/CLI, Eiffel, F#, IronPython, IronRuby, PowerBuilder, Visual Basic, Visual COBOL, Windows PowerShell)로 개발할 수 있습니다. .NET용으로 개발된 라이브러리의 타입과 멤버를 원래 작성된 언어나 원래 언어의 관례를 따르지 않고도 접근할 수 있습니다. 컴포넌트 개발자라면, 어떤 .NET 앱이든 언어와 상관없이 컴포넌트에 접근할 수 있습니다.

컴포넌트가 공통 언어 명세를 준수한다면, CLS 준수가 보장되며, CLS를 지원하는 모든 프로그래밍 언어로 작성된 어셈블리 코드를 통해 접근할 수 있습니다. 컴파일 시점에 CLSCompliantAttribute 기능을 소스 코드에 적용하여 컴파일 시 공통 언어 명세를 준수하는지 확인할 수 있습니다.

공통 언어 명세서는 CLS 준수의 각 규칙을 논의하는데, 이는 소비자(CLS 호환 컴포넌트 컴포넌트에 프로그래밍적으로 접근하는 개발자), 프레임워크(언어 컴파일러를 사용해 CLS 호환 라이브러리를 생성하는 개발자), 확장기(언어 컴파일러나 코드 분석기 등 CLS 호환 컴포넌트 도구를 만드는 개발자)에게 적용되기 때문입니다.
프로그램은 컴파일 시 기본적으로 코드가 CLS 요구사항을 준수하는지 확인하지 않지만, 프로그램이 공개(코드쉐어, Nuget 릴리스 등)일 수 있다면 [assembly: CLSCompliant(true)] 사용을 권장합니다.도서관이 CLS 준수를 하고 있음을 표시하세요

리소스:

하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.

쉽게 말하자면:

필라프는 손으로 먹을 수 있고, 숟가락으로 먹을 수도 있지만 문제는 없지만, 손으로 먹는 것은 위생 기준이나 기준에 부합하지 않습니다. CLS는 프로토콜 명세이지만, 어셈블리는 오류를 보고하지 않으며 정상적인 사용에 영향을 주지 않지만, 개발한 코드의 일부 유형과 매개변수는 표준을 충족하지 못합니다.

CLS 사용

AssemblyInfo.cs 파일에 다음 코드를 추가하세요:



이 명령은 전체 의회에 적용될 것입니다.

이 기능을 설정하지 않으면, 객체에 이 기능을 추가할 때 다음과 같은 오류가 발생할 수 있습니다:

어셈블리에는 CLSCompliant 기능이 없으므로 "A.Test"는 CLSCompliant 기능을 요구하지 않습니다

테스트 코드는 다음과 같으며, 다시 컴파일한 다음:

"A.Test" 유형은 CLS를 준수하지 않습니다



두 개의 경고를 보고, 경고 항목을 클릭하면 특정 줄 번호로 이동할 수 있습니다. 이 경우 우리 코드 라인이 CLS 사양에 부합하지 않음을 나타내며, 그 후 직접 수정할 수 있습니다.

라인이 CLS 사양을 준수하지 않지만, 수정이 프로그램의 올바른 동작에 영향을 미치지만 VS가 경고하지 않길 원한다면, 필드나 클래스에 다음과 같은 특성을 추가할 수 있습니다:



이렇게 하면 이 경고가 발령되지 않습니다.

(끝)





이전의:Entity Framework 쿼리 최적화 WITH(NOLOCK)
다음:.NET/C# 아래에서 현재 애플리케이션 상태(CPU, 스레드, GC)를 얻기 위해
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com