Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

Dynamic Data Types ใน C# คืออะไร

Dynamic Type (C# 4.0+) เก็บค่าได้ทุกชนิด Type Checking เกิดขึ้นที่ Runtime (ไม่ใช่ Compile-time)

Syntax

dynamic variableName = value;

ตัวอย่าง

using System;

class Program
{
    static void Main()
    {
        dynamic val1 = 100;      // int
        dynamic val2 = "Hello";  // string
        dynamic val3 = 3.14;     // double
        dynamic val4 = new { Name = "Test" }; // Anonymous type
        
        Console.WriteLine(val1.GetType()); // System.Int32
        Console.WriteLine(val2.GetType()); // System.String
        
        // เรียกเมธอด/Property แบบ Dynamic
        Console.WriteLine(val2.Length); // 5 - ตรวจสอบที่ Runtime
        
        // val2.UnknownMethod(); // RuntimeBinderException (ไม่ Error ตอน Compile)
    }
}

Dynamic vs Object

คุณสมบัติobjectdynamic
Type CheckingCompile-timeRuntime
Castingต้อง Castไม่ต้อง Cast
IntelliSenseมีไม่มี
Performanceดีกว่าช้ากว่า (DLR)
ใช้กับ Anonymous Typeยากง่าย

เมื่อไหร่ควรใช้ dynamic

  • Interop กับ COM, Python, JavaScript
  • JSON/XML Parsing แบบไม่รู้ Schema
  • Reflection ที่ซับซ้อน

ข้อควรระวัง

Error ที่ Runtime หาได้ยากกว่า ใช้เฉพาะเมื่อจำเป็นจริง