การพิมพ์แบบไดนามิกคืออะไร
การพิมพ์แบบไดนามิกช่วยให้สามารถกำหนดค่าประเภทต่างๆ ให้กับตัวแปรเดียวกันในระหว่างรันไทม์ ซึ่งแตกต่างจากการพิมพ์แบบสแตติกตรงที่ประเภทตัวแปรถูกกำหนด ณ เวลาคอมไพล์และคงที่ การพิมพ์แบบไดนามิกมอบความยืดหยุ่นโดยการกำหนดประเภท ณ รันไทม์ตามค่าที่กำหนด มันกำจัดการตรวจสอบประเภทเวลาคอมไพล์โดยเลื่อนเวลาไปที่รันไทม์
ในการพิมพ์แบบไดนามิก คอมไพเลอร์จะไม่ทำการตรวจสอบประเภทในระหว่างการคอมไพล์ ประเภทของตัวแปรจะถูกกำหนดที่รันไทม์ตามค่าที่กำหนดแทน ซึ่งช่วยให้การผูกข้อมูลล่าช้า โดยที่การเรียกใช้เมธอดและการเข้าถึงของสมาชิกได้รับการแก้ไขแบบไดนามิกตามประเภทที่แท้จริงของออบเจกต์
วิธีใช้ Dynamic Type ใน C#
หากต้องการใช้ประเภทไดนามิกใน C# คุณเพียงแค่ประกาศตัวแปรโดยใช้คำหลักไดนามิก ตัวอย่างเช่น:
myVariable แบบไดนามิก = 'สวัสดีชาวโลก!' ;
ในตัวอย่างนี้ myVariable ถูกประกาศเป็นตัวแปรไดนามิกและกำหนดค่าเป็น “Hello, World!” ที่รันไทม์ ประเภทของ myVariable จะถูกกำหนดให้เป็นสตริง
ตัวอย่างการใช้ Dynamic Type ใน C#
รหัสนี้สาธิตการใช้คำหลักแบบไดนามิกใน C#:
ใช้ระบบ ;
โปรแกรมชั้นเรียนสาธารณะ
{
สาธารณะ คงที่ เป็นโมฆะ หลัก ( )
{
ไดนามิก myDynamicVariable = 42 ;
คอนโซล เขียนไลน์ ( 'ค่า: {0}, ประเภท: {1}' , myDynamicVariable , myDynamicVariable รับประเภท ( ) ) ;
myDynamicVariable = 'สวัสดีชาวโลก!' ;
คอนโซล เขียนไลน์ ( 'ค่า: {0}, ประเภท: {1}' , myDynamicVariable , myDynamicVariable รับประเภท ( ) ) ;
myDynamicVariable = เท็จ ;
คอนโซล เขียนไลน์ ( 'ค่า: {0}, ประเภท: {1}' , myDynamicVariable , myDynamicVariable รับประเภท ( ) ) ;
myDynamicVariable = วันเวลา. ตอนนี้ ;
คอนโซล เขียนไลน์ ( 'ค่า: {0}, ประเภท: {1}' , myDynamicVariable , myDynamicVariable รับประเภท ( ) ) ;
MyCustomFunction ( myDynamicVariable ) ;
}
สาธารณะ คงที่ เป็นโมฆะ MyCustomFunction ( ข้อมูลแบบไดนามิก )
{
คอนโซล เขียนไลน์ ( 'เอาต์พุตฟังก์ชันที่กำหนดเอง: {0}' , ข้อมูล ) ;
}
}
ไดนามิกคีย์เวิร์ดทำให้ตัวแปรสามารถพิมพ์ไดนามิกได้ ซึ่งหมายความว่าประเภทของตัวแปรสามารถเปลี่ยนแปลงได้ในขณะรันไทม์ ในโค้ด ตัวแปรชื่อ myDynamicVariable ถูกประกาศเป็นไดนามิกและเริ่มกำหนดค่าจำนวนเต็มเป็น 42 จากนั้นจะพิมพ์พร้อมกับประเภทโดยใช้ Console.WriteLine
จากนั้น myDynamicVariable จะได้รับการกำหนดค่าสตริง (“Hello World!”) และพิมพ์อีกครั้งด้วยประเภทของมัน กระบวนการเดียวกันนี้ซ้ำแล้วซ้ำอีกสำหรับค่าบูลีนและสุดท้ายสำหรับวันที่และเวลาปัจจุบันที่ได้รับโดยใช้ DateTime.Now
โค้ดยังมี MyCustomFunction ที่รับข้อมูลพารามิเตอร์ไดนามิกและพิมพ์ออกมา ฟังก์ชัน myDynamicVariable เรียกว่าอาร์กิวเมนต์ ซึ่งแสดงให้เห็นว่าสามารถส่งผ่านตัวแปรไดนามิกไปยังฟังก์ชันได้ และสามารถกำหนดประเภทของตัวแปรได้ในขณะรันไทม์
บทสรุป
ประเภทไดนามิกใน C# 4.0 อนุญาตให้มีการประกาศตัวแปรโดยไม่ต้องระบุประเภทของตัวแปร ซึ่งจะเป็นประโยชน์เมื่อทำงานกับข้อมูลประเภทที่ไม่รู้จักในขณะรันไทม์ การพิมพ์แบบไดนามิกช่วยให้คอมไพเลอร์สามารถข้ามการตรวจสอบประเภทระหว่างการคอมไพล์ได้ ประเภทของตัวแปรจะถูกกำหนดเมื่อโปรแกรมทำงานแทน โดยพิจารณาจากค่าที่เก็บไว้ อ่านเพิ่มเติมเกี่ยวกับประเภทไดนามิกในบทความนี้