ฉันต้องประกาศอาเรย์สตริงว่างและฉันใช้รหัสนี้
string[] arr = new String[0]();
แต่ฉันได้รับข้อผิดพลาด "ชื่อเมธอดที่คาดว่า"
เกิดอะไรขึ้น
ฉันต้องประกาศอาเรย์สตริงว่างและฉันใช้รหัสนี้
string[] arr = new String[0]();
แต่ฉันได้รับข้อผิดพลาด "ชื่อเมธอดที่คาดว่า"
เกิดอะไรขึ้น
คำตอบ:
ลองสิ่งนี้
string[] arr = new string[] {};
c# Array.Empty<string>()
ไวยากรณ์ของคุณผิด:
string[] arr = new string[]{};
หรือ
string[] arr = new string[0];
หากคุณใช้. net 4.6 พวกเขามีไวยากรณ์ใหม่บางอย่างที่คุณสามารถใช้ได้:
using System; // To pick up definition of the Array class.
var myArray = Array.Empty<string>();
คุณสามารถลองสิ่งนี้
string[] arr = {};
ตัวสร้างอาร์เรย์มีความแตกต่างกัน ต่อไปนี้เป็นวิธีสร้างอาร์เรย์สตริงที่ว่างเปล่า:
var arr = new string[0];
var arr = new string[]{};
var arr = Enumerable.Empty<string>().ToArray()
(ขออภัยบนมือถือ)
สิ่งที่หยิกบางครั้งก็ยากที่จะจำได้นั่นคือเหตุผลที่มีเอกสารยอดเยี่ยม:
// Declare a single-dimensional array
int[] array1 = new int[5];
int
ด้วยstring
ถ้าเขาชอบ
ไวยากรณ์ของคุณไม่ถูกต้อง
string[] arr = new string[5];
ที่จะสร้างarr
อาร์เรย์ของสายอ้างอิงที่องค์ประกอบทั้งหมดของอาร์เรย์null
นี้ (เนื่องจากสตริงเป็นประเภทอ้างอิง )
อาร์เรย์นี้มีองค์ประกอบจากไปarr[0]
ผู้ประกอบการใช้ในการสร้างอาร์เรย์และเริ่มต้นองค์ประกอบอาร์เรย์เป็นค่าเริ่มต้นของพวกเขา ในตัวอย่างนี้ทุกองค์ประกอบอาร์เรย์จะเริ่มต้นได้ที่arr[4]
new
null
หากคุณต้องสร้างอาเรย์ที่ว่างเปล่าคุณสามารถทำได้:
string[] arr = new string[0];
หากคุณไม่ทราบขนาดก็สามารถใช้List<string>
เช่นกัน
var valStrings = new List<string>();
// do stuff...
string[] arrStrings = valStrings.ToArray();
ต่อไปนี้ควรทำงานได้ดี
string[] arr = new string[] {""};