Gå til innhold

Anbefalte innlegg

Jeg lager en StringComparer-klasse hvor jeg overskrider Compare(string x, string y)-metoden. I MSDN-dokumentasjonen finner jeg følgende:

 

Return Value

Value

Meaning

 

Less than zero

x is less than y.

 

-or-

 

x is a null reference (Nothing in Visual Basic).

 

Zero

x is equal to y.

 

Greater than zero

x is greater than y.

 

-or-

 

y is a null reference (Nothing in Visual Basic).

 

 

 

Mitt spørsmål er følgende: betyr "less than zero" -1 og "greater than zero" 1? Og hvorfor skriver de ikke bare dette? Hva med -2, -3, 2, 3, etc? Bruker man disse til noe? Og hvor skal en string x sorteres i lista hvis den er "Greater than zero" - før eller etter y?

 

hilsen emil!

Lenke til kommentar
Videoannonse
Annonse
Mitt spørsmål er følgende: betyr "less than zero" -1 og "greater than zero" 1? Og hvorfor skriver de ikke bare dette? Hva med -2, -3, 2, 3, etc? Bruker man disse til noe?

"less than zero" betyr et tall mindre enn null og "greater than zero" betyr et tall større enn null. Lengre ned i dokumentasjonen står det

The return value is the result of the last comparison performed.

Det vil altså si at tallet som blir returnert er lik differansen mellom de to tegnene som ble sammenlignet da den første forskjellen ble funnet.

 

Siden denne returnerte verdien kun sier noe om den første forskjellen så er det vanskelig å bruke den til noe fornuftig da den ikke sier noe om den totale forskjellen på de to strengene.

 

Og hvor skal en string x sorteres i lista hvis den er "Greater than zero" - før eller etter y?

Compare(x, y) gir et positivt tall hvis x er større enn y og et negativt tall hvis x er mindre enn y. Det vil si at, når du sorterer strenger i stigende rekkefølge (alfabetisk f.eks) så vil x komme etter y hvis Compare(x, y) gir et positivt resultat.

Lenke til kommentar
Mitt spørsmål er følgende: betyr "less than zero" -1 og "greater than zero" 1? Og hvorfor skriver de ikke bare dette? Hva med -2, -3, 2, 3, etc? Bruker man disse til noe?

"less than zero" betyr et tall mindre enn null og "greater than zero" betyr et tall større enn null. Lengre ned i dokumentasjonen står det

The return value is the result of the last comparison performed.

Det vil altså si at tallet som blir returnert er lik differansen mellom de to tegnene som ble sammenlignet da den første forskjellen ble funnet.

 

Siden denne returnerte verdien kun sier noe om den første forskjellen så er det vanskelig å bruke den til noe fornuftig da den ikke sier noe om den totale forskjellen på de to strengene.

 

Og hvor skal en string x sorteres i lista hvis den er "Greater than zero" - før eller etter y?

Compare(x, y) gir et positivt tall hvis x er større enn y og et negativt tall hvis x er mindre enn y. Det vil si at, når du sorterer strenger i stigende rekkefølge (alfabetisk f.eks) så vil x komme etter y hvis Compare(x, y) gir et positivt resultat.

 

 

hva hvis x er null og y er ikke, hva skal jeg returnere da?

takk for hjelpen!

Lenke til kommentar

Et raskt søk på MSDN gav også følgende (så min gjettning om ArgumentException var skivebom):

 

"One or both comparands can be nullNothingnullptra null reference (Nothing in Visual Basic). By definition, any string, including the empty string (""), compares greater than a null reference; and two null references compare equal to each other."

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...