Denis Jakus

making tech less cryptic

CTO x Unique People

CTO Note

Dynamic in C#1 min read

22 October 2017 .NET

What are dynamic’s?

We have two type of languages: Static and Dynamic. Since C# is static language it is pretty cool to have type like dynamic included in it.
Static languages are the ones which resolutions are done during compile-time while Dynamic languages are the ones in which resolutions are done during run-time.
Dynamic types were added in .NET 4 version to make it easier to work with COM (office apps for instance) and to avoid Reflection as it is a bit complicated.

i.e.:

// using reflection

object foo = CustomObject;
var method = obj.GetType().GetMethod("NameOfMethod");
method.Invoke(null,null);

//using dynamic

dynamic foo = CustomObject;
foo.NameOfMethod();

As you can see in previous example, it is much cleaner and simpler to use dynamic than reflection.
Let’s look at another example:

dynamic foo = "bar";
foo = 10;

In this example we are not going to get exception, why? Because it’s a dynamic type!
We set foo variable as a type of string and then we tried to change it’s variable type to integer (hence number 10).
And during run-time, variable foo just changed it’s type to integer.
So, when using dynamic it is not necessary to cast to specific type.

i.e.:

int a = 10; // a if of type int
dynamic b = a; // b is of type int
long c = b; // c is of type long

SUMMARY:

It is pretty easy to use dynamic type and although i dont use it often, in some situations it is definitely a go to approach.

Taggs:
Related Posts
How to organize Visual Studio projects

Facebook Twitter Evernote Hacker News Gmail Print Friendly Yahoo Mail reddit LinkedIn Blogger Tumblr Like In my latest Youtube video,…

Caching in DotNet Core WebAPI using Strategy Pattern

Facebook Twitter Evernote Hacker News Gmail Print Friendly Yahoo Mail reddit LinkedIn Blogger Tumblr Like Let me write today about…

Write a comment
Exit mobile version