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 ในลักษณะอื่นอีกได้แก่
- การใช้ using เพื่อการกำหนด namespace ที่ต้องการอ้างถึงเพื่ออำนวยความสะดวกให้ไม่ต้องอ้างถึงคลาสหรือสิ่งต่าง ๆ แบบ fully qualify
รูปที่ 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
- การใช้ using เพื่อสร้าง alias ให้แก่ namespace หรือ type เพื่อความสั้นง่ายในการอ้างถึง
รูปที่ 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: ผลลัพธ์การทำงานของโปรแกรม
- การใช้ using เพื่อให้สามารถอ้างถึง static members และ nested types ของ type ได้โดยไม่ต้องอ้างถึงคลาสหรือสิ่งต่าง ๆ แบบ fully qualify
รูปที่ 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 ได้มากขึ้น