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.

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

  1. Constants are evaluated at the compile-time, while the read-only variables are evaluated at the runtime. 
  2. Constants support only value-type variables, while read-only variables can hold reference type variables. 
  3. 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

3. Checked and Unchecked keyword
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
    int i = 10;
     int i3 = 2147483647 + i;

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.

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");
     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.


via Blogger http://ift.tt/2l3qgMn February 12, 2017 at 03:24PM

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s