Search This Blog

Friday, March 4, 2016

Difference between ? and ?? operators in C#

Difference between ? and ??
            The conditional operator (?:) returns one of two values depending on the value of a       Boolean expression. Following is the syntax for the conditional operator.
      condition ? first_expression : second_expression;    
              // ?: conditional operator.
            int input = Convert.ToInt32(Console.ReadLine());           
            string classify = (input > 0) ? "positive" : "negative";

       The ?? operator is called the null-coalescing operator. It returns the left-hand operand if          the operand is not null; otherwise it returns the right hand operand.

            int? x = null;
            // Set y to the value of x if x is NOT null; otherwise,
            // if x = null, set y to -1.
            int y = x ?? -1;

Difference between as and is in C#

Is Operator is used to check the Compatibility of an Object with a given Type and it returns the result as a Boolean (True or false).
As Operator is used for Casting of Object to a given Type or a Class.
if (someObject is StringBuilder) ...
object x = 5;
// int y = x as int; // not allowed becoz of int : value type
int? y = x as int?; // allowed becoz of nullable type

Student s = obj as Student;                   
is equivalent to:
Student s = obj is Student ? (Student)obj : (Student)null;

as operator should be used with Reference Type or nullable type

Popular Posts