You are on page 1of 3

Difference between is and as operators in C# S.

No 1 Is operator Meaning: The is operator allows us to check whether an object is compatible with a specific type. Here the phrase "is compatible" means that an object is either of that type or is derived from that type. As opeator Meaning: The as operator is used to perform certain types of conversions between compatible reference types. i.e., The as operator is used to perform explicit type conversion of reference type.If the type being converted is compatible with the specified type,then that conversion is successful else as operator will return a null value. How it works ? i.Checks whether Object is compatible with given type ii. If yes, returns not null reference i.e same object iii. If no, returns null instead of raising an exception.

How it works ? i.Checks whether Object is compatible with given type ii. If yes, returns true iii. If no, returns false Remarks: An is expression evaluates to true if both of the following conditions are met: expression is not null. expression can be cast to type. That is, a cast expression of the form (type)(expression) will complete without throwing an exception. For more information, see 7.6.6 Cast expressions.

When to use is operator ? The is-cast is only ideal if the casted variable will not be needed for further use. For what type of conversions,is operator can be used ? is operator only considers reference conversions, boxing conversions, and unboxing conversions. Syntax:

When to use as operator ? If we need to use the casted variable, use the as-cast. For what type of conversions,as operator can be used ? as operator only performs reference conversions and boxing conversions.

Syntax:

expression is type 6 Example: int k = 0; if (k is object) { Console.WriteLine("i is an object"); }

expression as type Example: object x = "I am here"; object y = 10; string s1 = x as string; // here conversion is compatible so,s1="I am Here" string s2 = y as string;// here conversion is imcompatible so,s2=null

Notes: 1.Syntax: expression as type is equivalent to: expression is type ? (type)expression : (type)null Example: Employee e = obj as Employee; is equivalent to: Employee e = obj is Employee ? (Employee)obj : (Employee)null; 2.Both is and as operators cannot be overloaded. 3.The is operator will never throw an exception. 4. A compile-time warning will be issued if the expression expression is type is known to always be true or always be false. 5. Both is and as operators cannot use user-defined conversions 6.The as cast is an efficient, elegant way to cast in the C# language. It promotes exception-neutral and less redundant code. References: http://www.dotnetspider.com/sites/961/Forum-1095-What-difference-between-operatorC.aspx http://msdn.microsoft.com/en-us/library/scekt9xw%28v=vs.100%29.aspx http://msdn.microsoft.com/en-us/library/cscsdfbt%28v=vs.80%29.aspx http://mr-ponna.com/Question/363/What-is-difference-between-is-and-as-operators-in-c-/ http://msdn.microsoft.com/en-us/library/8edha89s.aspx http://www.c-sharpcorner.com/uploadfile/dhananjaycoder/type-casting-with-is-and-asoperator-in-C-Sharp/ http://www.c-sharpcorner.com/uploadfile/abhikumarvatsa/the-is-and-as-operators-in-CSharp/ http://www.dotnetperls.com/as

http://www.dotnetperls.com/is And, further updates on difference between questions and answers, please visit my blog @ http://onlydifferencefaqs.blogspot.in/