성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] How can I tell whether two programs...
[정성태] The case of the fail-fast crashes c...
[정성태] Creating Docker multi-arch images f...
[정성태] BinaryFormatter removed from .NET 9...
[정성태] Extending the Windows Shell Progres...
[우광현] 와..... 범위를 잡았으니 클라이언트가 해당 범위를 확인해본다...
[정성태] 딱히, 그것 이상으로 더 설명할 내용이 없습니다. 동적 포...
[정성태] If Windows 3.11 required a 32-bit p...
[정성태] What is a hard error, and what make...
[괴물신인] 질문작성자인데 이 글을 이제봤네요 ㄷㄷ 이 글처럼 타입별로 인...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>C# 9.0을 위한 개발 환경 구성</h1> <p> 다음의 문서에 이미 공개되어 있듯이,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C# language versioning ; <a target='tab' href='https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version'>https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version</a> </pre> <br /> 현재 C# 9.0은 <a target='tab' href='https://www.sysnet.pe.kr/2/0/12362'>.NET 5</a> 프로젝트인 경우 <a target='tab' href='https://www.sysnet.pe.kr/2/0/12033'>기본값</a>이지만, 그 외의 프로젝트라면 csproj 파일을 열어 명시적으로 9.0이라고 명시해야 합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> <span style='color: blue; font-weight: bold'><LangVersion>9.0</LangVersion></span> </PropertyGroup> </Project> </pre> <br /> 적용 여부를 간단하게 테스트하기 위해 신규 문법으로,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Target-typed new expressions ; <a target='tab' href='https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/target-typed-new'>https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/target-typed-new</a> </pre> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > using System; class Program { private readonly static object s_syncObj = <span style='color: blue; font-weight: bold'>new()</span>; static void Main(string[] args) { Console.WriteLine("Hello World!"); } } </pre> <br /> 코딩을 해보면, 원래는 "new()"에서 오류가 발생하지만 C# 9.0에서는 정상적으로 컴파일이 됩니다.<br /> <br /> <hr style='width: 50%' /><br /> <br /> C# 9.0에 관한 문법은 다음의 문서를 참고하거나,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > What's new in C# 9.0 ; <a target='tab' href='https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9'>https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9</a> C# 9.0 Specification Proposals ; <a target='tab' href='https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/records'>https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/records</a> </pre> <br /> 혹은 github 문서를 통해 현재 시점의 적용 여부까지 확인할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Language Feature Status - C# 9 ; <a target='tab' href='https://github.com/dotnet/roslyn/blob/master/docs/Language%20Feature%20Status.md#c-9'>https://github.com/dotnet/roslyn/blob/master/docs/Language%20Feature%20Status.md#c-9</a> </pre> <br /> <hr style='width: 50%' /><br /> <br /> 참고로, "Developer Command Prompt for VS2019"를 열고 다음의 명령어를 실행하면 이렇게 9.0이 포함되어 있을 것입니다. (2020-10-11 시점에는) default 버전은 8.0입니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\> <span style='color: blue; font-weight: bold'>csc -langversion:?</span> Supported language versions: default 1 2 3 4 5 6 7.0 7.1 7.2 7.3 <span style='color: blue; font-weight: bold'>8.0 (default) 9.0</span> latestmajor preview latest </pre> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1318
(왼쪽의 숫자를 입력해야 합니다.)