ตัวสร้างหลักไม่รวบรวมใน 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

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.