На простом языке:
Предположим, у нас есть следующий метод:
public static void ConsoleWrite(string inputArg)
{
Console.WriteLine(inputArg);
}
Объект : следующий код имеет ошибку компиляции, если объект не приведен к строке:
public static void Main(string[] args)
{
object obj = "String Sample";
ConsoleWrite(obj);// compile error
ConsoleWrite((string)obj); // correct
Console.ReadKey();
}
динамический : следующий код успешно компилируется, но если он содержит значение, кроме string
, он выдает ошибку выполнения
public static void Main(string[] args)
{
dynamic dyn = "String Sample";
ConsoleWrite(dyn); // correct
dyn = 1;
ConsoleWrite(dyn);// Runtime Error
Console.ReadKey();
}