Klass, väderstation uppgift .Programmering 1
Tjena! Jag behöver lite hjälp igen med min kod. Hade googlat, och läste en del men är ändå helt blockerad. Jag får den fel när jag försöker testa koden:
System.StackOverflowException
HResult=0x800703E9
Message=Ett undantagsfel av typen System.StackOverflowException inträffade.
Jag förstår att det kör infinite och därför funkar inte men fattar inte riktigt varför? Jag kollade också andra person kod som hittade på nätet och ser ut lik min och det fungerar.
Börja att känna mig så dumt med programmering, ibland känns att jag hade förstått men 5 min senare är jag helt förvirrad igen.
Stor tack i förhand.
Koden är:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Väderstation_;
namespace Väderstation_
{
public class Temp_city // new class, temperature and city name.
{
string stad;
int temp;
public Temp_city(string stad, int temp) //constructor
{
this.Stad = stad;
this.Temp = temp;
}
public Temp_city()
{
}
public string Stad
{
get { return Stad; }
set { Stad = value; } //HÄR ÄR PROBLEMET
}
public int Temp
{
get { return Temp; }
set { Temp = value; } //OCH HÄR
}
public override string ToString()
{
return Stad + " " + Temp;
}
public void Write()
{
Console.WriteLine("In" + Stad + "the temperature is" + Temp + "°C");
Console.ReadLine();
}
}
internal class Program
{
static int Linksok(List<Temp_city> list, int key) //Lineal searching
{
for (int i = 0; i < list.Count; i++)
{
if (list[i].Temp == key)
return i;
}
return -1;
}
static void Write (List<Temp_city>mylist)
{
for (int i = 0; i <mylist.Count; i++)
{
Console.WriteLine(mylist[i]);
}
}
public static void Bubblesort(List<Temp_city> cities)//Bubblesort searching.
{
int max = cities.Count - 1;
for (int i = 0; i < max; i++)
{
int nrLeft = max - i;
for (int j = 0; j < nrLeft; j++)
{
if (cities[j].Temp > cities[j + 1].Temp)
{
Temp_city tmp = cities[j];
cities[j] = cities[j + 1];
cities[j + 1] = tmp;
}
}
}
}
static void Main(string[] args)
{
List<Temp_city> mylist = new List<Temp_city>();
Console.WriteLine("Welcome to the weather station!");
Console.ReadLine();
for (int i = 0; i <= 3; i++)
{
Temp_city city = new Temp_city();
Console.Write("\nPlease write a city name:");
string stad = Console.ReadLine();
city.Stad = stad;
Console.Write("\nPlease write the temperature:");
int temp = Convert.ToInt32(Console.ReadLine());
city.Temp = temp;
if (temp >= -60 && temp <= 60)
{
mylist.Add(city);
continue;
}
else
{
Console.WriteLine("Wrong temperature! Please write it again");
break;
}
}
Console.Write(mylist);
Console.WriteLine("Bubblesort");
Bubblesort(mylist);
Write(mylist);
Console.ReadLine();
}
}
}