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);
}