อาจเป็นเพราะคอมไพเลอร์ใช้โดยค่าเริ่มต้นเวอร์ชันภาษา C # ที่แตกต่างกันสำหรับกรอบงานเป้าหมายที่แตกต่างกัน
หากต้องการแทนที่ภาษา C # เริ่มต้นให้เพิ่มลงในไฟล์โครงการ (ตามที่แนะนำในคำถาม):
<PropertyGroup>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
หรือ:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
ดูเวอร์ชัน C # ภาษาสำหรับเวอร์ชันภาษา C #เริ่มต้นสำหรับเฟรมเวิร์กเป้าหมายที่แตกต่างกันและวิธีเลือกเวอร์ชันภาษา C # ด้วยตนเอง
ดูเพิ่มเติมที่คำตอบล้นสแต็คC # 8 รองรับ. NET Framework หรือไม่ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้
นี่คือส่วนหนึ่งของบทความการกำหนดเวอร์ชันภาษา C # :
การกำหนดเวอร์ชันภาษา C #
คอมไพเลอร์ C # ล่าสุดกำหนดเวอร์ชันภาษาเริ่มต้นตามกรอบงานเป้าหมายหรือกรอบงานของโครงการของคุณ นี่เป็นเพราะภาษา C # อาจมีคุณสมบัติที่ขึ้นอยู่กับชนิดหรือส่วนประกอบรันไทม์ที่ไม่พร้อมใช้งานในทุกการใช้งาน. NET สิ่งนี้ยังช่วยให้มั่นใจได้ว่าสิ่งที่โครงการของคุณสร้างขึ้นจะถูกกำหนดเป็นค่าเริ่มต้น
กฎในบทความนี้ใช้กับคอมไพเลอร์ที่จัดส่งกับ Visual Studio 2019 หรือ. NET Core 3.0 SDK คอมไพเลอร์ C # ที่เป็นส่วนหนึ่งของการติดตั้ง Visual Studio 2017 หรือ. NET Core SDK เวอร์ชันก่อนหน้ามีเป้าหมายเป็น C # 7.0 โดยค่าเริ่มต้น
ค่าเริ่มต้น
คอมไพเลอร์กำหนดค่าเริ่มต้นตามกฎเหล่านี้:
--------------------------------------------------------
Target framework | version | C# language version default
--------------------------------------------------------
.NET Core | 3.x | C# 8.0
.NET Core | 2.x | C# 7.3
.NET Standard | 2.1 | C# 8.0
.NET Standard | 2.0 | C# 7.3
.NET Standard | 1.x | C# 7.3
.NET Framework | all | C# 7.3
--------------------------------------------------------
แทนที่ค่าเริ่มต้น
หากคุณต้องระบุเวอร์ชัน C # ของคุณอย่างชัดเจนคุณสามารถทำได้หลายวิธี:
- แก้ไขไฟล์โครงการด้วยตนเอง
- ตั้งค่ารุ่นภาษาสำหรับหลายโครงการในไดเรกทอรีย่อย
- กำหนดค่าตัวเลือกคอมไพเลอร์ -langversion
แก้ไขไฟล์โครงการ
คุณสามารถตั้งค่าเวอร์ชันภาษาในไฟล์โครงการของคุณ ตัวอย่างเช่นหากคุณต้องการเข้าถึงคุณลักษณะการแสดงตัวอย่างอย่างชัดเจนให้เพิ่มองค์ประกอบดังนี้:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
ค่าpreview
ใช้เวอร์ชันตัวอย่างภาษา C # เป็นภาษาล่าสุดที่คอมไพเลอร์ของคุณรองรับ
กำหนดค่าหลายโครงการ
ในการกำหนดค่าหลายโครงการคุณสามารถสร้างไฟล์Directory.Build.propsที่มี<LangVersion>
องค์ประกอบ โดยทั่วไปคุณทำเช่นนั้นในไดเรกทอรีโซลูชันของคุณ เพิ่มสิ่งต่อไปนี้ในไฟล์Directory.Build.propsในไดเรกทอรีโซลูชันของคุณ:
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
ตอนนี้สร้างในทุกไดเรกทอรีย่อยของไดเรกทอรีที่มีไฟล์นั้นจะใช้รุ่นตัวอย่าง C # สำหรับข้อมูลเพิ่มเติมโปรดดูบทความเกี่ยวกับการปรับแต่งของคุณสร้าง