logo

Nollayhdistysoperaattori C#:ssa

C#:ssa, ?? operaattori tunnetaan Null-coalescing-operaattorina. Se palauttaa vasemman käden operandinsa arvon, jos se ei ole nolla. Jos se on nolla, se arvioi oikeanpuoleisen operandin ja palauttaa tuloksensa. Tai jos vasemman käden operandi evaluoi ei-nollaksi, se ei arvioi oikeanpuoleista operandiaan.

Syntaksi:



p ?? q>

Tässä p on vasen ja q oikea operandi ?? operaattori. P:n arvo voi olla nollattava tyyppi, mutta q:n arvon on oltava ei-nolla-tyyppinen. Jos p:n arvo on nolla, se palauttaa q:n arvon. Muussa tapauksessa se palauttaa p:n arvon.

Tärkeitä kohtia:

  • ?? operaattoria käytetään nolla-arvojen tarkistamiseen, ja voit myös määrittää oletusarvon muuttujalle, jonka arvo on null(tai nolla-tyyppi).
  • Et saa ylikuormittaa?? operaattori.
  • Se on oikea-assosiatiivista.
  • Sisään ?? -operaattori, voit käyttää heittolauseketta oikeanpuoleisena operandina ?? operaattori, joka tekee koodistasi tiiviimmän.
  • Saako käyttää?? operaattori arvotyypeillä ja viitetyypeillä.

    Esimerkki:



    len of merkkijono javassa






    // 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;> >}> }> }>

    >

    >

    Lähtö:

     Value of item_4 is: techcodeview.com Value of item_3 is: techcodeview.com Value of item_6 is: 40>
  • Avulla ?? käyttäjä voi estää InvalidOperationException .

    Esimerkki:




    // 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);> >}> }> }>

    bash silmukalle 1-10

    >

    >

    Lähtö:

     Value of item_1 is: Value of item_2 is: 100>
  • Avulla ?? -operaattorilla voit poistaa monia tarpeettomia jos-else-ehtoja ja tehdä koodistasi kompaktin ja luettavan.

    Esimerkki:




    // 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);> >}> }> }>

    >

    >

    Lähtö:

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


    log4j



    // 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);> >}> }> }>

    >

    >

    Lähtö:

     Value of item_1 is: Value of item_2 is: 200>
  • ?? operaattori voidaan sisäkkäin. Se tekee koodistasi luettavamman ja vähentää myös useita jos-else-ehtoja.

    Esimerkki:




    // 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);> >}> }> }>

    >

    >

    Lähtö:

    Value of item_4 is: 500>