Der Ausdruck muss ein Klassentyp aufweisen?
g_VGuiSurface.DrawSetColor(flX, flY, 4, height + 2, Color(80, 80, 80, 125));
g_VGuiSurface.DrawOutlinedRect(flX, flY, 4, height + 2, Color(col_black));
g_VGuiSurface.DrawSetColor(flX + 1, flY, 2, height * flBoxes + 1, health);
for (int i = 0; i < 10; i++)
g_VGuiSurface.DrawLine(flX, flY + i * height, flX + 4, flY + i * height, Color(col_black));
Bei g_VGuiSurface krieg ich dann immer die meldung"Der Ausdruck muss ein Klassentyp aufweisen" was muss ich tun, damit der code funzt?
2 Antworten
Die Anweisungen müssen innerhalb des Codeblocks einer Klasse stehen (Schlüsselwort class). Zudem müssen Anweisungen in einer Methode stehen, da C#, anders als z. B. Python, Perl oder Ruby nicht Top-Down den Code abarbeitet. Zudem muss ein Objekt in C# zuerst erzeugt werden, bevor es benutzt werden kann. Wenn ein Objekt nicht existiert, dann kann es nicht verwendet werden. Dein Code sollte in etwa diesem Konstrukt entsprechen:
using System;
namespace OOPExample
{
public class Dinosaur
{
// öffentliche Eigenschaften
public string Name { get; set; }
public string Period { get; set; }
// private Eigenschaften
private int age { get; set; }
// öffentliche oder private Methoden;
// diese können Anweisungen enthalten.
// Der Aufruf einer Methode gilt ebenfalls als Anweisung.
public void setAge(int newAge)
{
age = newAge;
}
}
public class Test
{
// gültig, da erst ein Obejkt erzeugt werden muss.
Dinosaur trex = new Dinosaur();
// unzulässig, da Objekt nicht existiert
compy.SetAge(3);
}
}
nur ein abschnitt des kompletten codes, aber nur bei diesem die Fehlermeldung