เนื่องจาก C# เป็นภาษาที่มีการพิมพ์อย่างชัดเจน ตัวแปรและค่าคงที่ทุกตัวจึงมีประเภทที่กำหนดไว้ล่วงหน้า ก่อนใช้ตัวแปรใดๆ เราต้องบอกคอมไพเลอร์ว่าตัวแปรจะเก็บค่าประเภทใด
หากเราไม่แน่ใจเกี่ยวกับประเภท เราจะจัดการโดยใช้โปรแกรมแบบไดนามิก การเขียนโปรแกรมแบบไดนามิกได้รับการสนับสนุนโดย ไดนามิก คำสำคัญ
ใช้คีย์เวิร์ดแบบไดนามิกเพื่อประกาศประเภทไดนามิก ประเภทไดนามิกบอกคอมไพเลอร์ว่าอ็อบเจ็กต์ถูกกำหนดเป็นไดนามิกและข้ามการตรวจสอบประเภท ณ เวลาของคอมไพเลอร์ หน่วงเวลาการตรวจสอบประเภทจนถึงรันไทม์ ไวยากรณ์ทั้งหมดได้รับการตรวจสอบและเกิดข้อผิดพลาดขณะใช้งานจริง
ตัวอย่าง
using System;
namespace DemoDynamicKeyword{
class Program{
static void Main(string[] args){
dynamic MyDynamicVar = 100;
Console.WriteLine("Value: {0}, Type: {1}", MyDynamicVar, MyDynamicVar.GetType());
MyDynamicVar = "Hello World!!";
Console.WriteLine("Value: {0}, Type: {1}", MyDynamicVar, MyDynamicVar.GetType());
MyDynamicVar = true;
Console.WriteLine("Value: {0}, Type: {1}", MyDynamicVar, MyDynamicVar.GetType());
MyDynamicVar = DateTime.Now;
Console.WriteLine("Value: {0}, Type: {1}", MyDynamicVar, MyDynamicVar.GetType());
}
}
} ผลลัพธ์
ผลลัพธ์ของตัวอย่างข้างต้นมีดังนี้
Value: 100, Type: System.Int32 Value: Hello World!!, Type: System.String Value: True, Type: System.Boolean Value: 01-01-2014, Type: System.DateTime