Permalänk
Medlem

C# hjälp

Hej jag håller på med ett skolarbete och det blir lite fel men jag vet inte vad som är fel.
Här är koden:
Console.Write("Person1: ");
person1 = Console.ReadLine();
Console.Write("Mata in poäng för" + lon1);
lon1 = double.Parse(Console.ReadLine());

Då kommer det ett error som är: cannot implicitly convert int to string.
Någon som vet vad jag gör för fel? Tack på förhand!

Permalänk
Inaktiv

Du får posta lite mer kod för att vi ska kunna hjälpa dig. Du får ett felmeddelande som är hur enkelt som helst att förstå om du varit med på lektionerna.

Permalänk
Medlem
Skrivet av anon150287:

Du får posta lite mer kod för att vi ska kunna hjälpa dig. Du får ett felmeddelande som är hur enkelt som helst att förstå om du varit med på lektionerna.

okej,

double lon1, lon2, lon3, lon4, lon5;
string person1, person2, person3, person4, person5;

Console.Write("Person1: ");
person1 = Console.ReadLine();
Console.Write("Mata in lön för" + person1);
lon1 = double.Parse(Console.ReadLine());

Console.Write("Mata in lön2: ");
lon2 = double.Parse(Console.ReadLine());

Console.Write("Mata in lön3: ");
lon3 = double.Parse(Console.ReadLine());

Console.Write("Mata in lön4: ");
lon4 = double.Parse(Console.ReadLine());

Console.Write("Mata in lön5: ");
lon5 = double.Parse(Console.ReadLine());

Console.ReadKey();

Där är all kod jag har skrivit än så länge

Permalänk
Inaktiv
Skrivet av Swippz:

okej,

double lon1, lon2, lon3, lon4, lon5;
string person1, person2, person3, person4, person5;

Console.Write("Person1: ");
person1 = Console.ReadLine();
Console.Write("Mata in lön för" + person1);
lon1 = double.Parse(Console.ReadLine());

Console.Write("Mata in lön2: ");
lon2 = double.Parse(Console.ReadLine());

Console.Write("Mata in lön3: ");
lon3 = double.Parse(Console.ReadLine());

Console.Write("Mata in lön4: ");
lon4 = double.Parse(Console.ReadLine());

Console.Write("Mata in lön5: ");
lon5 = double.Parse(Console.ReadLine());

Console.ReadKey();

Där är all kod jag har skrivit än så länge

Jag får inga felmeddelande när jag kör den koden, måste vara något annat. Du försöker göra om en variabel av typen int till en string någonstans.

Permalänk
Medlem
Skrivet av anon150287:

Jag får inga felmeddelande när jag kör den koden, måste vara något annat. Du försöker göra om en variabel av typen int till en string någonstans.

Jo så långt är jag också med, det var bara något konstigt med just det projectet för när jag startade ett nytt så blev det inget error
tack för hjälpen iaf

Permalänk
Medlem

offtopic, har du lärt dig vektorer alt. vill du gå en snabb överkurs för att göra din kod en miljard gånger snyggare?

Visa signatur

2500k @ 4.7GHz | VENGEANCE CL8 1600Mhz | 6970 @ stock | Agi 3 ssd- 120gb + slö 1 tb disk

Permalänk
Medlem
Skrivet av Bbirger:

offtopic, har du lärt dig vektorer alt. vill du gå en snabb överkurs för att göra din kod en miljard gånger snyggare?

aa visst det skadar ju inte att göra det snyggare

Permalänk
Medlem
Skrivet av Swippz:

aa visst det skadar ju inte att göra det snyggare

OK
Det här kanske är överkurs..
en vektor är ett sätt att spara flera enheter efter varandra under samma "variabel". t ex:

double lon1, lon2, lon3, lon4, lon5;
string person1, person2, person3, person4, person5;
hade kunnat sparas:
double[] sallery;
string[] person;

och sen loopa igenom din kod typ:
for(int i =0; i<5;i++){
write("person" +i);
person[i]= läs in...
write("mata in lön för person " +i)
sallery[i]=läs in..
}

Jag har aldrig egentligen kört C# så skrev det i halvt om halvt psudokod så du får klura lite själv

Visa signatur

2500k @ 4.7GHz | VENGEANCE CL8 1600Mhz | 6970 @ stock | Agi 3 ssd- 120gb + slö 1 tb disk

Permalänk
Medlem
Skrivet av Bbirger:

OK
Det här kanske är överkurs..
en vektor är ett sätt att spara flera enheter efter varandra under samma "variabel". t ex:

double lon1, lon2, lon3, lon4, lon5;
string person1, person2, person3, person4, person5;
hade kunnat sparas:
double[] sallery;
string[] person;

och sen loopa igenom din kod typ:
for(int i =0; i<5;i++){
write("person" +i);
person[i]= läs in...
write("mata in lön för person " +i)
sallery[i]=läs in..
}

Jag har aldrig egentligen kört C# så skrev det i halvt om halvt psudokod så du får klura lite själv

Det blev ju mycket bättre, ska klura lite på det

Permalänk
Medlem
Skrivet av Swippz:

Det blev ju mycket bättre, ska klura lite på det

men om det här är en skoluppgift kanske du kan låta det vara för nu. Läraren kanske blir misstänksam eller så förstör jag någon pedagogisktråd denne försöker följa

Visa signatur

2500k @ 4.7GHz | VENGEANCE CL8 1600Mhz | 6970 @ stock | Agi 3 ssd- 120gb + slö 1 tb disk

Permalänk
Medlem
Skrivet av Swippz:

Hej jag håller på med ett skolarbete och det blir lite fel men jag vet inte vad som är fel.
Här är koden:
Console.Write("Person1: ");
person1 = Console.ReadLine();
Console.Write("Mata in poäng för" + lon1);
lon1 = double.Parse(Console.ReadLine());

Då kommer det ett error som är: cannot implicitly convert int to string.
Någon som vet vad jag gör för fel? Tack på förhand!

Skulle tro att det är din "lon1" som är en integer? Isåfall så måste du konvertera den till string innan du kan skriva den i konsollen så

Console.Write("Mata in poäng för" + lon1);

Ska vara

Console.Write("mata in poäng för" + Convert.ToString(lon1));

Hoppas att det var problemet, berätta gärna om det funkar eller inte och fråga gärna igen om du behöver mer hjälp!

Permalänk
Medlem
Skrivet av mickez:

Skulle tro att det är din "lon1" som är en integer? Isåfall så måste du konvertera den till string innan du kan skriva den i konsollen så

Console.Write("Mata in poäng för" + lon1);

Ska vara

Console.Write("mata in poäng för" + Convert.ToString(lon1));

Hoppas att det var problemet, berätta gärna om det funkar eller inte och fråga gärna igen om du behöver mer hjälp!

tack men det var bara något konstigt med programmet för när jag startade om det och kopierade in all kod igen så var det inga problem

Permalänk
Skrivet av mickez:

Skulle tro att det är din "lon1" som är en integer? Isåfall så måste du konvertera den till string innan du kan skriva den i konsollen så

Console.Write("Mata in poäng för" + lon1);

Ska vara

Console.Write("mata in poäng för" + Convert.ToString(lon1));

Hoppas att det var problemet, berätta gärna om det funkar eller inte och fråga gärna igen om du behöver mer hjälp!

Behöver man verkligen göra om int för att skriva ut det i konsolen?

Visa signatur

Bal-Sagoth | Ensiferum | Windir | Finntroll | Wintersun | Amon Amarth | Moonsorrow | Nazgûl

Permalänk
Skrivet av Swippz:

tack men det var bara något konstigt med programmet för när jag startade om det och kopierade in all kod igen så var det inga problem

Ett av de vanligaste problemen inom programmering, du försöker kombinera två olika datatyper med varandra. Den ena datatypen måste alltså konverteras, man brukar kalla detta för 'typecasting'. Prova att googla på 'typecasting c#' nästa gång du stöter på samma problem så ska du se att det finns många som haft exakt samma problem som dig.

Lycka till!

/T

Visa signatur

CPU: AMD FX-8350 @ 4.7GHz | RAM: 32GB Vengeance @1600MHz | GPU: Asus HD7970 DCII Top @ 1.0/5.6 GHz | ASRock 990FX Fatal1ty | PSU: Newton R3 800W Platinum | HD: 128 GB Plextor M3 Pro, 300 GB WD Green | triple-boot: Win7-64,WinXP-32,debian-64

Permalänk

I Console.Write() och vissa liknande funktioner konverteras varje argument automatiskt till strängar, och man kan ge hur många som helst. Observera:

Console.Write("mata in poäng för ", lon1);

Permalänk
Medlem
Skrivet av metalbast:

Behöver man verkligen göra om int för att skriva ut det i konsolen?

Nej det måste man inte. Alla typer (även primitiva typer som int) har en ToString()-metod som automatiskt körs vid strängkonkatenering. null är ett knepigt undantag (null är alltid ett knepigt undantag) då det är någon sorts singletonobjekt utan metoder, som representerar ett uteblivet värde. Samtidigt går null att sätta samman med en sträng ("Hello, " + null).

TLDR: du behöver inte konvertera till sträng vid konkatenering.

Visa signatur

Kom-pa-TI-bilitet