Using directive ใน .NET Core 3 และ C#8

นอกจากการจะใช้คำสั่ง using เพื่อทำ Using declarations ซึ่งเป็นการใช้กับการประกาศตัวแปรหรือ Object ภายในไฟล์ ซึ่งสามารถอ่านได้ที่บทความ Using declarations ใน .NET Core 3 และ C#8 ภาษา C# ยังมีการใช้คำสั่ง using ในลักษณะอื่นอีกได้แก่ 1. การใช้ using เพื่อการกำหนด namespace ที่ต้องการอ้างถึงเพื่ออำนวยความสะดวกให้ไม่ต้องอ้างถึงคลาสหรือสิ่งต่าง ๆ แบบ fully qualify
รูปหน้าปกบทความ Using directive  ใน .NET Core 3 และ C#8
ทักษะ (ระบุได้หลายทักษะ)

Using directive  ใน .NET Core 3 และ C#8

นอกจากการจะใช้คำสั่ง using เพื่อทำ Using declarations ซึ่งเป็นการใช้กับการประกาศตัวแปรหรือ Object ภายในไฟล์  ซึ่งสามารถอ่านได้ที่บทความ Using declarations ใน .NET Core 3 และ C#8
ภาษา C# ยังมีการใช้คำสั่ง using ในลักษณะอื่นอีกได้แก่  
 

  1. การใช้ using เพื่อการกำหนด namespace ที่ต้องการอ้างถึงเพื่ออำนวยความสะดวกให้ไม่ต้องอ้างถึงคลาสหรือสิ่งต่าง ๆ แบบ fully qualify
โค้ดแสดงคำสั่งการใช้งาน StringBuilder เพื่อจัดเก็บข้อมูล

รูปที่ 1 คือโค้ดแสดงคำสั่งการใช้งาน StringBuilder เพื่อจัดเก็บข้อมูล
 

  • บรรทัดที่ 2 มีการใช้คำสั่ง using เพื่ออ้างอิงถึง namespace System.Text ซึ่ง class StringBuilder ถูกกำหนดให้จัดอยู่ใน namespace นี้
  • บรรทัดที่ 10 มีคำสั่งสร้างออกเจ็คก์ชื่อ data1 จาก class StringBuilder ซึ่งเขียนแบบ fully qualify อ้างอิง class จาก namespace System.Text หรือการอ้างแบบเต็มนั้นเอง
  • บรรทัดที่ 12 เนื่องจากในบรรทัดที่ 2 มีการใช้คำสั่ง using อ้างอิง namespace System.Text แล้ว ดังนั้นจึงสามารถสร้างออกเจ็คก์ชื่อ data2 จาก class StringBuilder โดยไม่จำเป็นต้องกำหนด namespace ก็ได้ ซึ่งจะเห็นว่าคำสั่งสั้นและกระชับกว่าคำสั่งบรรทัดที่ 10
  1. การใช้ using เพื่อสร้าง alias ให้แก่ namespace หรือ type เพื่อความสั้นง่ายในการอ้างถึง
โค้ดแสดงการใช้งาน Using directive alias

รูปที่ 2 คือโค้ดแสดงการใช้งาน Using directive alias  
 

  • บรรทัดที่ 4: แสดงการทำ alias directive ต่อ class
  • บรรทัดที่ 7: แสดงการทำ alias directive ต่อ generic class
  • บรรทัดที่ 9-17: definition ของ class MyClass ที่อยู่ภายใน NameSpace1
  • บรรทัดที่ 20-29: definition ของ class MyClass แบบ generic ที่อยู่ภายใน NameSpace2
  • บรรทัดที่ 37: แสดงการใช้ alias directive ชื่อ AliasToMyClass เพื่อสร้าง object
  • บรรทัดที่ 40: แสดงการใช้ alias directive ชื่อ UsingAlias เพื่อสร้าง object
  • บรรทัดที่ 46,47: ผลลัพธ์การทำงานของโปรแกรม
  1. การใช้ using เพื่อให้สามารถอ้างถึง static members และ nested types ของ type ได้โดยไม่ต้องอ้างถึงคลาสหรือสิ่งต่าง ๆ แบบ fully qualify
โค้ดแสดงการใช้ using static directive เพื่อสร้าง static member ของ class Console, Math, String

รูปที่ 3 คือโค้ดแสดงการใช้ using static directive เพื่อสร้าง static member ของ class Console, Math, String 

เราอาจใช้คำสั่ง using ร่วมกับคำสั่ง static เพื่อเพื่อสร้าง static member ได้ รูปที่ 3 คือโค้ดแสดงการใช้ using static directive เพื่อสร้าง static member ของ class Console, Math, String การทำเช่นนี้จะช่วยให้เราสามารถอ้างถึงสมาชิกภายใน class Console, Math, String ได้โดยไม่ต้องระบุที่มา ต่อไปนี้เป็นคำอธิบายโค้ด
 

  • บรรทัดที่ 10: อ้างถึง method Write โดยไม่ต้องระบุ type name Console
  • บรรทัดที่ 17-20: อ้างถึง method Format โดยไม่ต้องระบุ type name Sting
  • บรรทัดที่ 21: อ้างถึง method WriteLine โดยไม่ต้องระบุ type name Console
  • บรรทัดที่ 25: อ้างถึง method WriteLine โดยไม่ต้องระบุ type name Console
  • บรรทัดที่ 46: อ้างถึง Constance โดยไม่ต้องระบุ type name Math

การใช้ Using ในกรณีต่างๆ ดังที่กล่าวมา เรียกว่า Using directive  ซึ่งเป็นการกำหนด Using ที่ต้นไฟล์ เพื่อให้สามารถเรียกใช้ Class ได้ภายในไฟล์  
จากบทความนี้ ท่านผู้อ่านน่าจะเข้าใจความหมายของ Using directive และสามารถนำไปประยุกต์ในการเขียน code ได้มากขึ้น