คำถามติดแท็ก c#-6.0

C # 6.0 มาพร้อมกับ Roslyn (.NET Compiler Platform) และ Visual Studio 2015

1
เหตุใดฉันจึงไม่สามารถใช้ตัวดำเนินการการขยายค่าว่างในนิพจน์แลมบ์ดาได้
ฉันมักจะใช้ตัวดำเนินการเผยแพร่ค่าว่างในโค้ดของฉันเพราะมันทำให้ฉันมีโค้ดที่อ่านได้ง่ายขึ้นโดยเฉพาะในการสืบค้นแบบยาวฉันไม่ต้องตรวจสอบค่า null ทุกคลาสที่ใช้ โค้ดต่อไปนี้แสดงข้อผิดพลาดในการคอมไพล์ที่เราไม่สามารถใช้ตัวดำเนินการโฆษณาแบบ null ในแลมบ์ดาได้ var cnt = humans.AsQueryable().Count(a => a.House?[0].Price == 5000); ความผิดพลาด : ข้อผิดพลาด CS8072 แลมบ์ดาแผนผังนิพจน์อาจไม่มีตัวดำเนินการการเผยแพร่ค่าว่าง C # สามารถแปลโค้ดด้านบนเป็นโค้ดเป็นโค้ดต่อไปนี้ได้อย่างง่ายดายหากทำอย่างอื่นไม่ได้! var cnt = humans.AsQueryable().Count(a => a.House != null && a.House[0].Price == 5000); ฉันสงสัยว่าทำไม C # ไม่ทำอะไรเลยและเพียงแค่แสดงข้อผิดพลาดของคอมไพเลอร์?

1
ตัวสร้างหลักไม่รวบรวมใน VS2015 อีกต่อไป
จนถึงวันนี้ฉันสามารถใช้ประโยชน์จากตัวสร้างหลักเช่น: public class Test(string text) { private string mText = text; } เพื่อให้สามารถทำได้ใน Visual Studio CTP ก่อนหน้านี้ฉันต้องเพิ่มสิ่งนี้ลงในไฟล์ csproj: <LangVersion>Experimental</LangVersion> อย่างไรก็ตามสิ่งนี้ใช้ไม่ได้ใน Visual Studio 2015 Preview อีกต่อไป (มีหรือไม่มีLangVersion) ใครมีความคิดเกี่ยวกับสิ่งที่จะเกิดขึ้น?

6
คุณสมบัติอัตโนมัติกับ getter เท่านั้นตั้งได้เพราะอะไร?
ฉันสร้างคุณสมบัติอัตโนมัติ: public int Foo { get; } นี่คือ getter เท่านั้น แต่เมื่อฉันสร้างตัวสร้างฉันสามารถเปลี่ยนค่า: public MyClass(string name) { Foo = 5; } ทำไมถึงเป็นไปได้ทั้งๆที่เป็นแบบ get-only?
97 c#  c#-6.0 

3
TryParse โดยไม่ใช้พารามิเตอร์ var
คุณลักษณะใหม่ใน C # 6.0 ช่วยให้สามารถประกาศตัวแปรภายในเมธอด TryParse ฉันมีรหัส: string s = "Hello"; if (int.TryParse(s, out var result)) { } แต่ฉันได้รับข้อผิดพลาดในการคอมไพล์: ฉันทำอะไรผิด? PS: ในการตั้งค่าโปรเจ็กต์ C # 6.0 และ. NET framework 4.6 ถูกตั้งค่าไว้
94 c#  c#-6.0  c#-7.0 

2
การแก้ไขสตริงในมุมมองมีดโกน?
สิ่งนี้รองรับหรือไม่ ถ้าเป็นเช่นนั้นมีเคล็ดลับในการเปิดใช้งานหรือไม่? ฉันสมมติว่า Razor ไม่ได้ใช้คอมไพเลอร์ใหม่เพียงพอ ... ? VS2015 IDE ดูเหมือนจะใช้ได้ แต่ในขณะรันไทม์ฉันได้รับ CS1056: อักขระที่ไม่คาดคิด '$'
93 c#  asp.net-mvc  razor  c#-6.0 

9
รอคอยในการสกัดกั้น
ฉันมีรหัสต่อไปนี้: WebClient wc = new WebClient(); string result; try { result = await wc.DownloadStringTaskAsync( new Uri( "http://badurl" ) ); } catch { result = await wc.DownloadStringTaskAsync( new Uri( "http://fallbackurl" ) ); } โดยทั่วไปฉันต้องการดาวน์โหลดจาก URL และเมื่อล้มเหลวโดยมีข้อยกเว้นฉันต้องการดาวน์โหลดจาก URL อื่น ทั้งสองเวลาไม่ตรงกันแน่นอน อย่างไรก็ตามรหัสไม่ได้รวบรวมเนื่องจาก ข้อผิดพลาด CS1985: ไม่สามารถรอในเนื้อหาของประโยค catch ตกลงห้ามไม่ว่าด้วยเหตุผลใด แต่รูปแบบรหัสที่ถูกต้องนี่คืออะไร แก้ไข: ข่าวดีก็คือว่าC # 6.0 มีแนวโน้มที่จะช่วยให้สายรอคอยทั้งในและในที่สุดก็จับบล็อก

3
ฉันจะหาข้อกำหนดภาษา C # 6.0 ได้ที่ไหน [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันรู้ว่าจะหาข้อกำหนดภาษา C # 5 ได้ที่ไหนแต่ฉันไม่พบข้อกำหนดภาษา C # 6 จากที่ใด อยู่ที่ไหนC # 6ภาษาสเปก?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.