Permalänk

boolean till string

Hej, sitter och knåpar och har kört fast med denna metod:

private static bool getGender(string ssn) { string sexOdd = "Man"; string sexEven = "Kvinna"; if (determineSex(ssn) == true) return sexOdd; else return sexEven; }

och då går inte att göra konvertera typerna mellan varandra. Kan inte dra mig till svaret, har försökt testa lite olika sätt men inget vill sig.

Permalänk
Medlem

Du returnerar just nu en string och inte en bool i den metoden, determineSex(ssn) returnar boolen.

Så skulle tippa på att ändra private static bool till private static string.

Eller så kan du kolla lite på Enum http://www.dotnetperls.com/enum

Visa signatur

Speldator: i7-8700k, 32GB DDR4, RTX2080
Server 1: SB 2500k, MZI -P67GD55, 32GB DDR3, Corsair MX 240GB SSD
Surface Pro 2017, Konsoler: Typ alla, Oculus Rift

Permalänk
Medlem
Skrivet av Leprechauny:

Hej, sitter och knåpar och har kört fast med denna metod:

private static bool getGender(string ssn) { string sexOdd = "Man"; string sexEven = "Kvinna"; if (determineSex(ssn) == true) return sexOdd; else return sexEven; }

och då går inte att göra konvertera typerna mellan varandra. Kan inte dra mig till svaret, har försökt testa lite olika sätt men inget vill sig.

Några rekommendationer:

  • Eftersom du kör C# bör metodnamnet enligt konvention inledas med stor bokstav.

  • Döp om 'determineSex' till 'IsMale'

  • Döp om 'sexOdd' och 'sexEven' till 'male' respektive 'female' eller ta bort dem helt

  • Du vill returnera en string från din funktion istället för en bool.

Med dessa ändringar blir koden:

private static string GetGender(string ssn) { if (IsMale(ssn)) // == true är inte nödvändigt då IsMale returnerar en bool return "Man"; else return "Kvinna"; }

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

private static string getGender(string ssn) { string sexOdd = "Man"; string sexEven = "Kvinna"; if (determineSex(ssn)) return sexOdd; else return sexEven; }

Permalänk
Medlem

Den typen du skriver i metoden som tex public string, public int, public boolean är den typen som metoden kommer returnera. Efter som du vill ha ut en sträng så får du som andra påpekat sätta typen till string istället eller alternativ returnera true eller false sen använde det svaret i en annan metod, till exempel kan du ju returnera true om det är en man annars vet du ju att det är en kvinna sen sätter du strängen till Man eller Kvinna i metoden som anropar den metoden du har skrivit här.

Permalänk
Skrivet av Teknocide:

...
Med dessa ändringar blir koden:

private static string GetGender(string ssn) { if (IsMale(ssn)) // == true är inte nödvändigt då IsMale returnerar en bool return "Man"; else return "Kvinna"; }

När man har så korta textrader att returnera så tycker jag att det blir smidigare med följande kod.

private static string GetGender(string ssn) { return IsMale(ssn) ? "Man" : "Kvinna"; }