기본 생성자는 더 이상 VS2015에서 컴파일되지 않습니다.


98

바로 오늘까지 다음과 같은 기본 생성자를 사용할 수있었습니다.

public class Test(string text)
{
    private string mText = text;
}

이 작업을 수행하려면 이전 Visual Studio CTP에서 csproj 파일에 다음을 추가해야했습니다.

<LangVersion>Experimental</LangVersion>

어쨌든 이것은 Visual Studio 2015 Preview에서 더 이상 작동하지 않습니다 (를 포함하거나 포함하지 않음 LangVersion). 무슨 일이 벌어 질지에 대한 아이디어가있는 사람이 있습니까?


6
그들은 여기서
Jonesopolis

15
이 기능이 무의미하다고 생각한 사람은 나뿐입니까? 나는 그것에 대한 실제적인 이점을 찾지 못했습니다.
TyCobb 2014

2
조금 어색했지만 그 뒤에 숨은 철학이 마음에 들어요!
Matko

14
부끄러운 일입니다. 그러나 F #으로 이동하면 기본 생성자를 자유롭게 사용할 수 있습니다. F 번호, csharpers, 새로운 언어 기능이 이미 이동)
scrwtp

3
@TyCobb, 기본 생성자는 종속성 주입에 절대적으로 필요합니다. 모든 종속성의 이름 (및 유형)을 네 번 반복하지 않고도 생성자 주입 (속성 주입과 반대)을 사용할 수 있습니다.
Fyodor Soikin

답변:


143

무슨 일이 벌어 질지에 대한 아이디어가있는 사람이 있습니까?

예-기본 생성자는 C # 6 계획에서 제거되었습니다. 이후 버전에서는 어떤 형태로든 나타날 수 있지만 더 이상 C # 6에는 없습니다.

자세한 내용은 팀의 "언어 기능 세트 변경" 게시물을 참조하십시오.


정말 슬프 네요! 매우 유용 해 보였습니다.
Per Lundberg

@PerLundberg : 그들은 C # 7에도 없습니다. 나는 C # 디자인 팀이 C # 8의 레코드 유형을 다시 검토 할 것이라고 생각하지만, 그것이 확실히 거기에 도달 할 것이라는 의미는 아닙니다.
Jon Skeet

최선을 기대해 보자구. :) C # 포스팅에서 그것들이 언급되는 것을 보았습니다. 그리고 그것은 "간단한 클래스"문제를 해결하는 또 다른 흥미로운 방법처럼 보였습니다.
Per Lundberg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.