Tuesday, October 26, 2010

C# Object vs Var vs Dynamic primitive data types

using System;
using System.Linq;

// Object Vs Var Vs Dynamic keywords in C#
class Program
{
public static void Main()
{
// Object
object objWhat = new Char[] { 'k', 'u', 'm', 'a', 'r' };
Console.WriteLine((char[])(objWhat)); // Strongly typed

// Var
var what = new Char[] { 'k', 'i', 'r', 'a', 'n' };
Console.WriteLine(what); // Strongly typed

// Dynamic
for (Int32 demo = 0; demo < 2; demo++)
{
var arg = (demo == 0) ? (dynamic)5 : (dynamic)"A"; // not known till tun time - weakly typed
var result = Plus(arg);
M(result);
}

Console.ReadLine();
}

private static dynamic Plus(dynamic arg) { return arg + arg; } // dynamic method
private static void M(Int32 n) { Console.WriteLine("M(Int32): " + n); }
private static void M(String s) { Console.WriteLine("M(String): " + s); }
}

// Output looks like this
// kumar
// kiran
// M(Int32): 10
// M(String): AA

// dynamic code taken from: Jeffrey's book CLR via C#

No comments:

Post a Comment