.NET 3.5를 타겟팅하는 코드에서 선택적 매개 변수를 사용할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1210679

  •  06-07-2019
  •  | 
  •  

문제

C# 4.0의 새로운 옵션 매개 변수 기능을 사용하는 라이브러리를 작성하려고하지만 프레임 워크의 3.5 버전으로 타겟팅하려고합니다. 이게 가능해?

확장 방법과 동일한 방식으로 선택적인 매개 변수 구문 설탕입니까?

도움이 되었습니까?

해결책

VS2010 RC를 사용하면 C#에서 옵션 매개 변수를 사용하는 .NET 3.5 응용 프로그램을 만들 수있었습니다.

그렇습니다. 구문 설탕에 관한 것입니다.

다른 팁

VS 2010은 .NET 3.5 솔루션의 경우 C#의 선택적 매개 변수를 지원합니다. 그러나 한 가지주의 사항은 명령 줄 컴파일러가 오류를보고한다는 것입니다.

따라서 실행중인 빌드가 자동화 된 경우, Nant 또는 명령 줄 컴파일러를 사용하여 다른 것을 사용하는 경우 빌드에 실패합니다.

Jon Skeet과 마찬가지로 나는 3.0 c# 언어 사양의 일부가 아니기 때문에 "기능 '옵션 매개 변수'를 사용할 수 없었습니다. 그러나 RTM 버전의 Visual Studio에서는 Project Properties-> Build-> Advanced에서 언어 버전을 "기본값"으로 선택할 수 있습니다. 그것은 나를 위해 일하게되었습니다.

어셈블리가 V4의 개발 환경 내에서 빌드되는 한 이전 버전의 대상 프레임 워크에서 선택 사항과 이름이 지정된 매개 변수를 사용할 수 있습니다 (FE VS2010). 그러나이 경우 런타임 컴파일 또는 게시 웹 사이트를 알고 있어야합니다.이 경우 대상 프레임 워크의 컴파일러가 사용됩니다. 구형 프레임 워크의 컴파일러는 선택 사항의 구문과 이름이 지정된 매개 변수를 이해하지 못하기 때문에 컴파일러 오류가 발생합니다.

프로젝트 속성 -> 빌드 탭 -> 클릭 버튼 '고급' -> 언어 버전을 '기본값' -> 저장 -> 행복;)로 이동하십시오.)

여기에 VS2010이 설치되어 있지는 않지만, 이것은 순전히 언어 기능 일 것이라고 생각하므로 타겟팅되는 프레임 워크에 관계없이 사용할 수 있어야합니다.

편집 : 이것을보고 있습니다 링크 (그리고 다른 몇몇), 선택적 매개 변수는 IL에서 [opt] 속성을 사용하여 메소드 인수를 컴파일하는 것으로 보입니다. 이 매개 변수가 이전 버전의 CLR에 존재했는지는 모르겠지만 여전히 내 추측이 그렇게 될 것입니다.

vb.net에는 .NET 3.5에서 선택적 매개 변수를 사용하려는 경우 옵션 매개 변수가 있습니다.

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