هر دو برای مدیریت پویا در سیشارپ استفاده میشن، اما از نظر کاربرد و عملکرد تفاوتهای مهمی دارن:
مثال: dynamic
dynamic obj = "Hello, World!" Console.WriteLine(obj.Length); // 13 obj = 123; Console.WriteLine(obj + 10); // 133
obj.NewProperty = "Test" // زمان اجرا خطا میده
مثال: ExpandoObject
using System.Dynamic; dynamic expando = new ExpandoObject(); expando.Name = "John" // اضافه کردن یک property expando.Age = 30; // اضافه کردن یک property جدید Console.WriteLine($"{expando.Name}, {expando.Age}"); // John, 30
اضافه کردن متد:
expando.Greet = (Action)(() => Console.WriteLine($"Hello {expando.Name}!")); expando.Greet(); // Hello John!
چه زمانی از هرکدام استفاده کنیم؟
نوع dynamic:
نوع ExpandoObject: