logo

Null-koalescerende operatør i C#

I C#, ?? operatør er kjent som null-koalescerende operatør. Den vil returnere verdien av sin venstre operand hvis den ikke er null. Hvis den er null, vil den evaluere den høyre operanden og returnere resultatet. Eller hvis venstreoperanden evalueres til ikke-null, så evaluerer den ikke høyreoperanden.

Syntaks:



p ?? q>

Her er p venstre og q høyre operand av ?? operatør. Verdien av p kan være en nullbar type, men verdien av q må være en ikke-nullbar type. Hvis verdien av p er null, returnerer den verdien av q. Ellers vil den returnere verdien av p.

semantisk feil

Viktige punkter:

  • Den ?? operator brukes til å sjekke nullverdier, og du kan også tilordne en standardverdi til en variabel hvis verdi er null (eller nullbar type).
  • Du har ikke lov til å overbelaste ?? operatør.
  • Det er høyreassosiativt.
  • I ?? operatør, kan du bruke kasteuttrykk som en høyreoperand av ?? operatør som gjør koden din mer kortfattet.
  • Du har lov til å bruke ?? operatør med verdityper og referansetyper.

    Eksempel:








    // C# program to illustrate how to use> // ?? operator with value types and> // reference types> using> System;> > namespace> example {> > class> Program {> >static> void> Main(>string>[] args)> >{> > >// Reference types> >string> item_1 =>null>;> >string> item_2 =>'techcodeview.com'>;> >string> item_3 =>'GFG'>;> > >string> item_4 = item_1 ?? item_2;> >item_3 = item_4 ?? item_2;> > >Console.WriteLine(>'Value of item_4 is: {0} '>+> >'Value of item_3 is: {1}'>, item_4, item_3);> > >// Value types> >int> ? item_5 =>null>;> > >Program obj =>new> Program();> > >// Using ?? operator assigns> >// the value of a value type> >// and also you are allowed> >// to use method with ?? operator> >int> ? item_6 = item_5 ?? obj.Add(10, 30);> >Console.WriteLine(>'Value of item_6 is: {0}'>, item_6);> >}> > >// Method> >public> int> Add(>int> a,>int> b)> >{> >int> result = a + b;> >return> result;> >}> }> }>

    >

    primtallsprogram i java
    >

    Produksjon:

     Value of item_4 is: techcodeview.com Value of item_3 is: techcodeview.com Value of item_6 is: 40>
  • Med hjelp av ?? operatør du kan forhindre InvalidOperationException .

    Eksempel:




    // C# program to illustrate how ??> // operator prevent the> // InvalidOperationException> using> System;> > namespace> example {> > class> GFG {> > >// Main Method> >static> void> Main(>string>[] args)> >{> >// Creating items of nullable types> >int> ? item_1 =>null>;> > >/*> >Here if you use this commented part,> >then this statement will give you an> >InvalidOperationException. So to> >overcome this problem we use ?? operator> >int? item_2 = item_1.Value;> >*/> > >// With the help of ?? operator we> >// assign a default value to the item_2> >// And the value of item_1 is null.> >int> ? item_2 = item_1 ?? 100;> >Console.WriteLine(>'Value of item_1 is: {0}'>, item_1);> >Console.WriteLine(>'Value of item_2 is: {0}'>, item_2);> >}> }> }>

    >

    >

    Produksjon:

     Value of item_1 is: Value of item_2 is: 100>
  • Med hjelp av ?? operatør kan du fjerne mange overflødige if-else-forhold og gjøre koden din kompakt og lesbar.

    Eksempel:

    hvordan bestemme skjermstørrelsen




    // C# program to illustrate how ??> // operator replaces if-else statements> using> System;> > namespace> example {> > class> GFG {> > >// Main Method> >static> void> Main(>string>[] args)> >{> >// Creating items of nullable types> >int> ? item_1 =>null>;> > >int> ? item_2;> > >if> (item_1.HasValue) {> >item_2 = item_1;> >}> >else> {> >item_2 = 200;> >}> >Console.WriteLine(>'Value of item_1 is: {0}'>, item_1);> >Console.WriteLine(>'Value of item_2 is: {0}'>, item_2);> >}> }> }>

    >

    >

    Produksjon:

     Value of item_1 is: Value of item_2 is: 200>


    fremoverlening



    // C# program to illustrate how ??> // operator replaces if-else statements> using> System;> > namespace> example {> > class> GFG {> > >// Main Method> >static> void> Main(>string>[] args)> >{> >// Creating items of nullable types> >int> ? item_1 =>null>;> > >// Using ?? operator> >int> ? item_2 = item_1 ?? 200;> >Console.WriteLine(>'Value of item_1 is: {0}'>, item_1);> >Console.WriteLine(>'Value of item_2 is: {0}'>, item_2);> >}> }> }>

    >

    >

    Produksjon:

     Value of item_1 is: Value of item_2 is: 200>
  • ?? operatør kan nestes. Det vil gjøre koden din mer lesbar og også redusere flere if-else-forhold.

    Eksempel:




    // C# program to illustrate how> // we use nested ?? operator> using> System;> > namespace> example {> > class> GFG {> > >// Main Method> >static> void> Main(>string>[] args)> >{> >// Creating items of nullable types> >int> ? item_1 =>null>;> >int> ? item_2 =>null>;> >int> ? item_3 = 500;> > >// Nested ?? operator> >int> ? item_4 = item_1 ?? item_2 ?? item_3;> > >Console.WriteLine(>'Value of item_4 is: {0} '>, item_4);> >}> }> }>

    >

    linje autocad kommando

    >

    Produksjon:

    Value of item_4 is: 500>