Laden...

Objekte können nicht erstellt werden

Erstellt von Fayzon vor 8 Jahren Letzter Beitrag vor 8 Jahren 652 Views
F
Fayzon Themenstarter:in
9 Beiträge seit 2016
vor 8 Jahren
Objekte können nicht erstellt werden

Hallo, zurzeit habe ich ein Problem mit dem erstellen von Objekten:

void ObjanClick(object sender, EventArgs e)
		{
			int leistung;
			string marke;
			string farbe;
			
			Kfz fahrz = new Kfz[4];

			fahrz[0].leistung=120;
			fahrz[0].marke="BMW";
			fahrz[0].farbe="gelb";

			fahrz[1].leistung=220;
			fahrz[1].marke="VW";
			fahrz[1].farbe="schwarz";	

			fahrz[2].leistung=300;
			fahrz[2].marke="Toyota";
			fahrz[2].farbe="grau";

			fahrz[3].leistung=1000;
			fahrz[3].marke="VW Kaefer";
			fahrz[3].farbe="weiß";
}

Bei dem Code bekomme ich eine Fehlermeldung:> Fehlermeldung:

Der Typ- oder Namespacename 'Kfz' konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) (CS0246)

Kann mir dort jemand helfen?

S
324 Beiträge seit 2007
vor 8 Jahren

In Welchem Buch hast du das denn so gelesen? 😃

Kfz ist in deinem Fall ein Objekt zu dem es keine Klasse gibt.
Bedeutet: Die Felder "leistung", "marke" und "farbe" gehören als Eigenschaften in eine extra Klasse, welche "Kfz" heißt.

Siehe hierzu auch: https://msdn.microsoft.com/de-de/library/x9afc042.aspx

F
Fayzon Themenstarter:in
9 Beiträge seit 2016
vor 8 Jahren

ist dies so korrekt:

	void ObjanClick(object sender, EventArgs e)
		{
			int leistung;
			string marke;
			string farbe;
			
			Kfz fahrz = new Kfz[4];			
		}
		
	class Kfz
	{		
		fahrz[0].leistung=120;
		fahrz[0].marke="BMW";
		fahrz[0].farbe="gelb";
		
		fahrz[1].leistung=220;
		fahrz[1].marke="VW";
		fahrz[1].farbe="schwarz";
		
		fahrz[2].leistung=300;
		fahrz[2].marke="Toyota";
		fahrz[2].farbe="grau";
		
		fahrz[3].leistung=1000;
		fahrz[3].marke="VW Kaefer";
		fahrz[3].farbe="weiß";
		
		}		
1.029 Beiträge seit 2010
vor 8 Jahren

Hi,

nope - diese Fragen würden sich jedoch mit einem Buch erübrigen.

Grundlegend: Schau dir bitte ein solches Buch mal genau an - du machst DIR das Leben dadurch einfacher. Denn du scheinst bisher nicht zu verstehen, was du überhaupt tust.

Hier mal ein Beispiel:

namespace Trash
{
	class Program
	{
		static void Main(string[] args)
		{
			Kfz[] fahrzeuge = new Kfz[4]; // Array von Fahrzeugen

			// fahrzeuge[0] ist das erste element des Arrays
			fahrzeuge[0] = new Kfz(); // ansonsten wäre es noch kein kfz - sondern NULL
			fahrzeuge[0].leistung = 120;
			fahrzeuge[0].marke = "BMW";
			fahrzeuge[0].farbe = "gelb";
		}
	}

	public class Kfz
	{
		public int leistung;
		public string marke;
		public string farbe;
	}
}
709 Beiträge seit 2008
vor 8 Jahren

Bedeutet: Die
>
"leistung", "marke" und "farbe" gehören als
>
in eine extra
>
, welche "Kfz" heißt.

Sclot hat das schon ganz gut erklärt. Ich habe mal ein paar Links ergänzt.

F
Fayzon Themenstarter:in
9 Beiträge seit 2016
vor 8 Jahren

ja danke euch allein für die Hilfe