logo

Nulinis sujungimo operatorius C#

C# kalboje, ?? operatorius yra žinomas kaip Null-coalescing operatorius. Jis grąžins kairiojo operando vertę, jei ji nėra nulinė. Jei jis yra nulis, jis įvertins dešinįjį operandą ir grąžins rezultatą. Arba jei kairysis operandas įvertina ne nulį, tada jis neįvertina savo dešiniojo operando.

Sintaksė:

p ?? q>

Čia p yra kairysis, o q yra dešinysis ?? operatorius. P reikšmė gali būti nulinio tipo, tačiau q reikšmė turi būti nenulinio tipo. Jei p reikšmė yra nulinė, tada ji grąžina q reikšmę. Priešingu atveju jis grąžins p reikšmę.



Svarbūs punktai:

  • ?? operatorius naudojamas nulinėms reikšmėms patikrinti, taip pat galite priskirti numatytąją reikšmę kintamajam, kurio reikšmė yra null (arba nulinio tipo).
  • Jums neleidžiama perkrauti ?? operatorius.
  • Tai yra dešinysis-asociatyvus.
  • Į ?? operatorių, galite naudoti metimo išraišką kaip dešinįjį operandą ?? operatorius, kuris padaro jūsų kodą glaustesnį.
  • Jums leidžiama naudoti ?? operatorius su verčių tipais ir nuorodų tipais.

    Pavyzdys:




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

    >

    >

    Išvestis:

     Value of item_4 is: techcodeview.com Value of item_3 is: techcodeview.com Value of item_6 is: 40>
  • Su pagalba ?? operatorius, kurio galite užkirsti kelią InvalidOperationException .

    Pavyzdys:




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

    np.sujungti

    >

    >

    Išvestis:

     Value of item_1 is: Value of item_2 is: 100>
  • Su pagalba ?? operatorių galite pašalinti daug perteklinių „jei-kita“ sąlygų ir padaryti kodą kompaktišką bei skaitomą.

    Pavyzdys:




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

    >

    >

    Išvestis:

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




    junit testų bylos

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

    >

    >

    Išvestis:

     Value of item_1 is: Value of item_2 is: 200>
  • ?? operatorius gali būti įdėtas. Tai padarys jūsų kodą lengviau skaitomą ir sumažins kelias „jei-kita“ sąlygas.

    Pavyzdys:




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

    >

    >

    Išvestis:

    Value of item_4 is: 500>