{0} เมื่อพบสตริงใน C # หมายความว่าอย่างไร


85

ในพจนานุกรมเช่นนี้:

Dictionary<string, string> openWith = new Dictionary<string, string>();

openWith.Add("txt", "notepad.exe");
openWith.Add("bmp", "paint.exe");
openWith.Add("dib", "paint.exe");
openWith.Add("rtf", "wordpad.exe");

Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]);

ผลลัพธ์คือ:

สำหรับ Key = "rtf" value = wordpad.exe

อะไร{0}หมายถึง?

คำตอบ:


181

คุณกำลังพิมพ์สตริงที่จัดรูปแบบ {0} หมายถึงการแทรกพารามิเตอร์ตัวแรกต่อจากสตริงรูปแบบ ในกรณีนี้ค่าที่เกี่ยวข้องกับคีย์ "rtf"

สำหรับ String.Format ซึ่งคล้ายกันหากคุณมีสิ่งที่ต้องการ

//            Format string                    {0}           {1}
String.Format("This {0}.  The value is {1}.",  "is a test",  42 ) 

คุณต้องสร้างสตริง "นี่คือการทดสอบค่าคือ42 "

คุณยังสามารถใช้นิพจน์และพิมพ์ค่าหลาย ๆ ครั้งได้:

//            Format string              {0} {1}  {2}
String.Format("Fib: {0}, {0}, {1}, {2}", 1,  1+1, 1+2) 

ให้ผล "ตอแหล: 1 , 1 , 2 , 3 "

ดูข้อมูลเพิ่มเติมได้ที่http://msdn.microsoft.com/en-us/library/txafckwd.aspxซึ่งพูดถึงการจัดรูปแบบคอมโพสิต


25

เป็นตัวยึดตำแหน่งในสตริง

ตัวอย่างเช่น,

string b = "world.";

Console.WriteLine("Hello {0}", b);

จะสร้างผลลัพธ์นี้:

Hello world.

นอกจากนี้คุณสามารถมีตัวยึดตำแหน่งได้มากเท่าที่คุณต้องการ สิ่งนี้ยังใช้ได้กับString.Format:

string b = "world.";
string a = String.Format("Hello {0}", b);

Console.WriteLine(a);

และคุณจะยังคงได้ผลลัพธ์เดียวกัน


11

นอกเหนือจากค่าที่คุณต้องการพิมพ์{0} {1}ฯลฯ คุณสามารถระบุรูปแบบได้ ตัวอย่างเช่น{0,4}จะเป็นค่าที่เพิ่มเป็นสี่ช่องว่าง

มีตัวระบุรูปแบบในตัวจำนวนมากและนอกจากนี้คุณสามารถสร้างของคุณเองได้ สำหรับการกวดวิชาที่ดี / รายการดูString การจัดรูปแบบใน C # นอกจากนี้ยังมีคำถามที่พบบ่อยที่นี่


6

สำหรับการอ้างอิงในอนาคตใน Visual Studio คุณสามารถลองวางเคอร์เซอร์ในชื่อวิธีการ (ตัวอย่างเช่น WriteLine) แล้วกดF1เพื่อดึงความช่วยเหลือในบริบทนั้น String.Format()ในกรณีนี้การขุดจะพบคุณพร้อมข้อมูลที่เป็นประโยชน์มากมาย

โปรดทราบว่าการไฮไลต์ส่วนที่เลือก (เช่นดับเบิลคลิกหรือทำการลากเลือก) และการกดปุ่มF1จะเป็นการค้นหาสตริงที่ไม่ใช่บริบทเท่านั้น (ซึ่งมีแนวโน้มที่จะค้นหาสิ่งที่เป็นประโยชน์) ดังนั้นตรวจสอบให้แน่ใจว่าคุณวางเคอร์เซอร์ไว้ที่ใดก็ได้ภายใน คำโดยไม่เน้น

นอกจากนี้ยังมีประโยชน์สำหรับเอกสารประกอบเกี่ยวกับชั้นเรียนและประเภทอื่น ๆ


5

เป็นตัวยึดสำหรับพารามิเตอร์แรกซึ่งในกรณีของคุณจะประเมินเป็น "wordpad.exe"

หากคุณมีพารามิเตอร์เพิ่มเติมคุณจะใช้{1}ฯลฯ


4

มันเป็นตัวยึดสำหรับพารามิเตอร์มากเช่นที่ระบุรูปแบบการทำหน้าที่ภายใน%sprintf

คุณสามารถเริ่มเพิ่มสิ่งพิเศษในนั้นเพื่อกำหนดรูปแบบได้เช่นกันแม้ว่าจะมีความหมายมากกว่าด้วยตัวแปรตัวเลข ( ตัวอย่างที่นี่ )


0

นี่คือสิ่งที่เราเรียกว่าการจัดรูปแบบคอมโพสิตของ. NET Framework เพื่อแปลงค่าของวัตถุเป็นการแสดงข้อความและฝังการแสดงนั้นในสตริง สตริงผลลัพธ์ถูกเขียนไปยังสตรีมเอาต์พุต

Console.WriteLine Method (String, Object) ที่โอเวอร์โหลด(String, Object)เขียนการแสดงข้อความของอ็อบเจ็กต์ที่ระบุตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐานโดยใช้ข้อมูลรูปแบบที่ระบุ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.