10 Essentials C# keywords every .Net developer should know before attending an Interview #AspNetInterviewQuestionsSeries
1. Var and/vs Dynamic
With Var keyword properties / Methods /Operators etc are resolve at compile time.
Var keyword is static typed and type cannot be change,Once you have assigned the type to var.
With Dynamic keyword properties / Methods /Operators etc are resolve at runtime.
type can be change once it is already assigned.
Var keyword is static typed and type cannot be change,Once you have assigned the type to var.
var i = "abc"; i = 1 ; //you cannot assign it integer value once it has been marked as string
With Dynamic keyword properties / Methods /Operators etc are resolve at runtime.
type can be change once it is already assigned.
dynamic i = "abc"; i = 1 ; //you can change the type in dynamic Console.WriteLine(i.anything); //error will be given at runtime
2. Const and ReadOnly
- Constants are evaluated at the compile-time, while the read-only variables are evaluated at the runtime.
- Constants support only value-type variables, while read-only variables can hold reference type variables.
- Constants should be used when the value is not changing during the runtime, and read-only variables are used mostly when their actual value is unknown before the runtime.
static readonly string readonlystring; //you can levae it blank and can assign value at runtime,assign object to it const string constring ="abc"; // you have to assign some value to const while declaring,you can assign ref type to const
Checked keyword is to check integral arithmetic overflow.
What will happen if you are assigning the greater value to your int than its maximum value?
you will get the wrong result,to check above condition and throw airtmetic overflow use Checked keyword either in block () or in expression {} manner.
//checked block int checkedk = int.MaxValue; Console.WriteLine(checked(checkedk+ 20)); //checked expression checked { int i = 10; int i3 = 2147483647 + i; Console.WriteLine(i3); }
unchecked keyword is just opposite of that it will not throw any exception. by default int ,byte are unchecked.
4. AS and IS keyword
Both keywords are used for safe cast typing with lill diff in their working.
IS :
checks whether the type of an given object is compatible with the new object type and returns Boolean type true or false.
AS:
checks whether the type of an given object is compatible with the new object type and returns object if it is compatible or null if it isn't.
person p = new person(); Men men = new Men(); Men m2 = p as Men; Console.WriteLine(p is Men); Console.WriteLine(men is person); if(m2 !=null) { Console.WriteLine("m is person type"); }else { Console.WriteLine("m is not person type"); }
5. Volatile and Lock keyword
volatile indicates that field can be modified by multiple thread. volatile keyword can be applied only to fields of class/struct.
Lock keyword ensures that if one thread is accessed any object in lock block that will not be accessible by another thread, it will have to wait until that thread release the accessed object.