Asp.Net Core 3.1 앱을 .Net 5로 업그레이드 한 후 일부 C # 9 기능을 사용할 수 없음
Nov 13 2020
해당 * .csproj 파일을 다음과 같이 수정하여 Asp.Net Core 3.1 (MVC)을 .Net 5로 업그레이드했습니다.
<TargetFramework>net5.0</TargetFramework>
<LangVersion>9.0</LangVersion>
이제 C # 9 대상 입력 기능을 사용할 수 있습니다 .
string s = new('c', 3); // compiles fine
...하지만 레코드 클래스를 만들 수 없습니다 .
public data class User
{
// IDE1007 The name 'data' does not exist in the current context.
}
여기에 뭔가 빠졌나요?
답변
6 PavelAnikhouski Nov 13 2020 at 12:52
에 따르면, 기록 형 사양 , 당신은 사용해야하는 public record User
구문을.
일부 내용이 변경되었으므로 소개가있는 블로그 게시물보다 최종 사양을 보는 것이 좋습니다.
GitHub의 csharplang repo 를 참조하여 최신 사양, 디자인 회의 및 제안을 확인할 수도 있습니다. 특정 레코드 기능의 경우 초기 문제 # 39를 사용하여 최신 업데이트 및 사양을 추적 할 수 있습니다.
2 GuruStron Nov 13 2020 at 12:52
레코드 유형 의 키워드 는 record
이제 다음과 같습니다.
public record Person
{
public string LastName { get; }
public string FirstName { get; }
public Person(string first, string last) => (FirstName, LastName) = (first, last);
}