Har provat med : Tänk efter lite nu.. :) Det där uttrycket är alltid sant. Antingen så börjar det inte med M eller inte med K (eller inte något av M och K). Här kommer 2 alternativ på hur du troligtvis tänkte göra:Validera om Första bokstaven är M eller K?
if (licenceVO.LicNbr.Substring(0,1)!= "M" || licenceVO.LicNbr.Substring(0,1)!= "K")
return response = "Du måste ange man eller Kvinna i licensnummeret.";
När jag debugar så är Förstasträngen "M" . Men den hoppar ändå till response isf att
gå vidare i valideringen.
Vad jag vill kolla är om första posten är ett M eller K annars return response.
Testade först med licenceVO.LicNbr.StartsWith men fick samma svar på response..
Sv: Validera om Första bokstaven är M eller K?
*leker cpu*
Om första bokstaven inte är M eller om första bokstaven inte är K så..
Villkor för första halvan: om bokstaven är annat än M så ger jag sant
Villkor för andra halvan: om bokstaven är annat än K så ger jag sant
Det räcker med att ett av villkoren är sant för att hela uttrycket ska vara sant
Om vi säger att bokstaven är M:
Första villkoret: M!=M är falskt
Andra villkoret: M!=K är sant
Hela: sant!
Om vi säger att bokstaven är K:
Första: K!=M är sant
Andra: K!=K är falskt
Hela: sant!
Således: Oavsett bokstav så kommer uttrycket _alltid_ vara sant.
Förslag: Byt ut eller ("||") mot och ("&&") så kommer det fungera!
(För övrigt, testa:
!licenceVO.LicNbr.StartsWith("M") && !licenceVO.LicNbr.StartsWith("K")
istället, lite tydligare vad koden gör då)Sv: Validera om Första bokstaven är M eller K?
if (licenceVO.LicNbr.Substring(0,1)!= "M" && licenceVO.LicNbr.Substring(0,1)!= "K")
if (!(licenceVO.LicNbr.Substring(0,1) == "M" || licenceVO.LicNbr.Substring(0,1) == "K"))
/Johan