Vra

  

Moontlike Dubbele:
   Wat is die "??" operateur vir?

Let asseblief verduidelik vir my wat is die gebruik van "??" in onder-kode en wat is "??" gebruik word.

if ((this.OrderDate ?? DateTime.MinValue) > DateTime.Today)

{         e.Description = "Die Orde Datum mag nie in die toekoms.";         return false;     }

bogenoemde kode is by http://nettiers.com/EntityLayer.ashx

Dankie.

Was dit nuttig?

Oplossing

(Dit is 'n duplikaat, maar dit is moeilik om te soek na, so ek is gelukkig genoeg om meer ander teiken vir toekomstige navrae ...)

Dit is die nul-coalescing operateur . In wese is dit evalueer die eerste operand, en as die resultaat is van nul (óf 'n nul verwysing of die nul waarde vir 'n waarvoor geen nul mag waarde tipe) dan evalueer dit die tweede operand. Die gevolg is ook al operand laaste geëvalueer, effektief.

Let daarop dat as gevolg van sy associativity, kan jy skryf:

int? x = E1 ?? E2 ?? E3 ?? E4;

As E1, E2, E3 en E4 is almal uitdrukkings van tipe int? -. Dit sal begin met E1 en vorder totdat dit 'n nie-nul waarde bevind

Die eerste operand het om 'n waarvoor geen nul mag tipe wees, maar e tweede operand kan wees nie waarvoor geen nul mag, in welke geval die algehele tipe uitdrukking is nie waarvoor geen nul mag. Byvoorbeeld, veronderstel E4 is 'n uitdrukking van tipe int (en al die ander is nog int? dan kan jy x nie waarvoor geen nul mag maak:

int x = E1 ?? E2 ?? E3 ?? E4;
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top