C# การใช้คำสั่ง

C Kar Chi Kha Sang



เมื่อทำการกำจัดทรัพยากร เช่น การเชื่อมต่อฐานข้อมูล สตรีมเอกสาร หรือการเชื่อมต่อเครือข่าย จะใช้คำสั่ง 'using' ในภาษา C# เพื่อให้แน่ใจว่ามีการกำจัดอย่างเหมาะสม การจัดการออบเจ็กต์ที่สอดคล้องกับอินเทอร์เฟซ IDisposable จะทำได้ง่ายขึ้นโดยวิธีนี้ ส่วนของรหัสที่สร้างและใช้ทรัพยากรจะถูกสร้างขึ้นเมื่อมีการประกาศคำสั่ง 'ใช้' หากใช้การประมวลผลปกติหรือข้อยกเว้นเพื่อออกจากบล็อก ฟังก์ชัน Dispose() ของอ็อบเจ็กต์จะถูกเรียกใช้ทันทีเพื่อปล่อยทรัพยากรที่ไม่สามารถควบคุมได้ และดำเนินการทำความสะอาดที่จำเป็น ในคู่มือนี้ เราจะกล่าวถึงทรัพยากรสตรีมเอกสารด้วยการใช้คำสั่ง C# “using”

ไวยากรณ์:

คำสั่ง C# “using” ใช้เพื่อจัดการทรัพยากรที่ต้องกำจัดทิ้งอย่างชัดเจนสะดวกและปลอดภัย มันเป็นไปตามไวยากรณ์เฉพาะดังต่อไปนี้:

โดยใช้ ( ทรัพยากรชนิดทรัพยากร = ประเภททรัพยากรใหม่ ( ) ) { // รหัส }
  • คีย์เวิร์ด 'using' ใช้เพื่อประกาศคำสั่ง 'using'
  • หลังคีย์เวิร์ด “using” คุณจะต้องระบุประเภททรัพยากรที่คุณต้องการใช้งาน ตามด้วยชื่อตัวแปรที่แสดงถึงทรัพยากรภายในบล็อก วัตถุใดๆ ที่ดำเนินการอินเทอร์เฟซ IDisposable มีคุณสมบัติ คุณสามารถดำเนินการกับทรัพยากรภายในบล็อกได้ตามความจำเป็น
  • ถัดไป เครื่องหมายเท่ากับ (=) ใช้เพื่อกำหนดอินสแตนซ์ใหม่ของประเภททรัพยากรให้กับตัวแปร
  • ในที่นี้ คำสำคัญ 'ใหม่' ถูกใช้เพื่อสร้างออบเจ็กต์ใหม่ของประเภททรัพยากร
  • การกำหนดค่าเริ่มต้นหรือการกำหนดค่าเพิ่มเติมใดๆ สามารถทำได้ภายในวงเล็บหลังคีย์เวิร์ดใหม่
  • สุดท้าย คุณใส่โค้ดที่ใช้ทรัพยากรภายในวงเล็บปีกกา {}

ตัวอย่างที่ 1:

เริ่มต้นด้วยตัวอย่างโค้ด C# เพื่อสาธิตการใช้งานคำสั่ง 'using' ของ C# ในบทความนี้ รหัสที่กำหนดครอบคลุมโปรแกรม C# ที่อ่านเนื้อหาของไฟล์ข้อความโดยใช้คลาส 'StreamReader' ภายในคำสั่ง 'using'







โปรแกรมเริ่มต้นด้วยการนำเข้าเนมสเปซที่จำเป็น System และ System.IO ซึ่งมีคลาสสำหรับการดำเนินการอินพุต/เอาท์พุตและการจัดการไฟล์ โปรแกรมจะกำหนดคลาสที่เรียกว่า “Dummy” ภายในคลาส “Dummy” มีเมธอด Main() ซึ่งควรถือเป็นรายการสำหรับโปรแกรม C# ใดๆ เพื่อรันโปรแกรมโดยรวมตั้งแต่ต้นจนจบ



เมธอด Main() เริ่มต้นด้วยการประกาศตัวแปรสตริง “fp” และกำหนดค่า “test.txt” ให้กับมัน นี่แสดงถึงเส้นทางไฟล์ของไฟล์ข้อความที่จะอ่าน เพื่อรับมือกับข้อผิดพลาดที่อาจเกิดขึ้นเมื่ออ่านไฟล์ จึงมีการใช้บล็อก try-catch



ภายในบล็อก try คำสั่ง 'using' ใช้เพื่อสร้างอินสแตนซ์ของคลาส 'StreamReader' งานในการทำความเข้าใจเนื้อหาจากไฟล์ตกเป็นของ “StreamReader” เส้นทางไฟล์ที่จัดเก็บไว้ในตัวแปร “fp” จะถูกส่งผ่านไปยังตัวสร้าง “StreamReader” ระบุไฟล์ที่จะอ่าน





ภายในบล็อก 'การใช้' เนื้อหาของไฟล์จะถูกตรวจสอบทีละบรรทัดโดยใช้การวนซ้ำ 'ในขณะที่' เว้นแต่บรรทัดสุดท้ายของเอกสารจะปรากฏขึ้น ลูปอ่านบรรทัดโดยใช้เมธอด ReadLine() ของ “StreamReader” และกำหนดให้กับตัวแปรสตริง “l” หากบรรทัดไม่เป็นค่าว่าง บรรทัดนั้นจะถูกพิมพ์ไปยังคอนโซลโดยใช้ Console.WriteLine(l)

เมื่อถึงจุดสิ้นสุดของไฟล์และไม่มีบรรทัดให้อ่านอีกต่อไป บล็อก 'using' จะออกจากบล็อกและออบเจ็กต์ 'StreamReader' จะถูกกำจัดโดยอัตโนมัติเนื่องจากคำสั่ง 'using' catch block จะเปิดใช้งานทุกครั้งที่มี IOException เกิดขึ้นขณะอ่านเอกสาร ได้รับข้อความแสดงข้อยกเว้นโดยใช้ e.Message และข้อความแสดงข้อผิดพลาดแสดงบนคอนโซลโดยใช้ Console.WriteLine()



การทำงานของโปรแกรมเสร็จสิ้นและเอาต์พุตคอนโซลจะปรากฏขึ้น สมมติว่ามีไฟล์ 'test.txt' อยู่และมีข้อความหลายบรรทัด ผลลัพธ์ของโค้ดนี้คือเนื้อหาของไฟล์ที่พิมพ์บนคอนโซลดังที่แสดงในรูปภาพที่แนบมาต่อไปนี้ ทุกบรรทัดจะแสดงแยกกันในเอาต์พุต:

โดยใช้ระบบ ;

โดยใช้ระบบ ไอโอ ;

คลาสดัมมี่ {

คงที่ เป็นโมฆะ หลัก ( ) {

สตริง fp = 'test.txt' ;

พยายาม {

โดยใช้ ( โปรแกรมอ่าน StreamReader = StreamReader ใหม่ ( เอฟพี ) )

{

สตริง ล ;

ในขณะที่ ( ( = ผู้อ่าน อ่านไลน์ ( ) ) != โมฆะ )

{

คอนโซล เขียนไลน์ ( ) ;

}

}

}

จับ ( IOException e ) {

คอนโซล เขียนไลน์ ( 'เกิดข้อผิดพลาด:' + มันคือ. ข้อความ ) ;

}

}

}

บันทึก: หากไม่มีไฟล์ “test.txt” หรือมีปัญหาในการเข้าถึงหรือการอ่านไฟล์ catch block จะถูกดำเนินการ และข้อความแสดงข้อผิดพลาดจะแสดงบนคอนโซลซึ่งระบุถึงข้อยกเว้นเฉพาะที่เกิดขึ้น

ตัวอย่างที่ 2:

นี่เป็นอีกตัวอย่างง่ายๆ ที่สาธิตการใช้คำสั่ง C# “using” กับ StreamWriter เพื่อเขียนข้อมูลลงในไฟล์ นี่คือคำอธิบายของโค้ดพร้อมกับผลลัพธ์ที่คาดหวัง รหัสเริ่มต้นด้วยการประกาศคลาส 'Dummy' และวิธี 'Main' ซึ่งจะเริ่มและสิ้นสุดโปรแกรมในที่สุด

ภายในวิธีการ 'Main' ตัวแปรสตริง 'fp' จะถูกประกาศและเริ่มต้นด้วยเส้นทางไฟล์ 'test.txt' เอกสารที่เขียนข้อมูลไว้จะแสดงด้วยสิ่งนี้ เพื่อจัดการกับ IOException ที่เป็นไปได้ที่อาจเกิดขึ้นตลอดกระบวนการเขียนเอกสาร โปรแกรมจึงถูกรวมไว้ในบล็อก try-catch

ภายในบล็อก try ออบเจ็กต์ StreamWriter ชื่อ 'writer' จะถูกสร้างขึ้นและเริ่มต้นโดยใช้คำสั่ง 'using' StreamWriter มีหน้าที่เขียนอักขระลงในไฟล์ เนื้อหาสองบรรทัดที่แยกกันจะถูกเพิ่มลงในเอกสารภายในส่วน 'การใช้' ผ่านทางฟังก์ชัน WriteLine ของอ็อบเจ็กต์ตัวเขียน เมื่อออกจากบล็อกแล้ว เมธอด Dispose() ของ StreamWriter จะถูกเรียกโดยอัตโนมัติ ซึ่งช่วยให้มั่นใจได้ว่าข้อมูลที่ค้างอยู่จะถูกเขียนลงในไฟล์และทรัพยากรที่จำเป็นจะถูกปล่อยออกมา

สุดท้าย นอกบล็อก 'การใช้' 'เขียนข้อมูลสำเร็จ' ข้อความจะปรากฏบนคอนโซลซึ่งแสดงให้เห็นว่าการดำเนินการเขียนเอกสารสำเร็จและปราศจากข้อผิดพลาด catch block จะเปิดใช้งานหากมี IOException ใด ๆ เกิดขึ้นระหว่างกระบวนการเขียนเอกสาร ในกรณีนั้น ข้อความแสดงข้อผิดพลาดพร้อมกับข้อความยกเว้นเฉพาะจะแสดงบนคอนโซล

โดยใช้ระบบ ;

โดยใช้ระบบ ไอโอ ;

คลาสดัมมี่ {

คงที่ เป็นโมฆะ หลัก ( ) {

สตริง fp = 'test.txt' ;

พยายาม {

โดยใช้ ( นักเขียน StreamWriter = StreamWriter ใหม่ ( เอฟพี ) )

{

นักเขียน เขียนไลน์ ( “สวัสดีซีชาร์ป!” ) ;

นักเขียน เขียนไลน์ ( “นี่คือข้อความทดสอบ” ) ;

}

คอนโซล เขียนไลน์ ( 'เขียนข้อมูลสำเร็จแล้ว' ) ;

}

จับ ( IOException e ) {

คอนโซล เขียนไลน์ ( 'เกิดข้อผิดพลาด:' + มันคือ. ข้อความ ) ;

}

}

}

โดยสรุป โค้ดจะสร้างออบเจ็กต์ StreamWriter โดยใช้คำสั่ง 'using' เขียนข้อความสองบรรทัดลงในไฟล์ จากนั้นจะกำจัด StreamWriter โดยอัตโนมัติ หากการดำเนินการเขียนสำเร็จ ซอฟต์แวร์จะสร้างข้อความแสดงความสำเร็จ มิฉะนั้น จะส่งเสียงข้อความแสดงความล้มเหลวหากมี IOException เกิดขึ้น

บทสรุป

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