Veröffentlicht 30. Mai 201510 j Hi, folgendes Problem, bezüglich C#. Sobald ich eine Klasse erstelle die eine statische Variable enthält und ich auf diese zugreifen möchte, kommt eine Fehlermeldung. Mir wird die Variable auch nicht angezeigt, wenn ich (wie im Beispiel) bit. eingebe. Hat da jemand eine Idee, wo der Fehler liegen könnte? Gruß Fasko Fehler 1 Auf den Member "StatischTest.A.zahl" kann nicht mit einem Instanzenverweis zugegriffen werden. Qualifizieren Sie ihn stattdessen mit einem Typnamen. c:\users\jo\documents\visual studio 2013\Projects\StatischTest\StatischTest\Program.cs 33 31 StatischTest using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StatischTest { public class A { public static int zahl; public void foo() { zahl++; } } class Program { static void Main(string[] args) { A bit = new A(); bit.foo(); Console.WriteLine(bit.zahl); Console.ReadKey(); } } }
30. Mai 201510 j Wie die Fehlermeldung schon sagt: Du greifst über eine Instanz (bit) auf eine Klasseneigenschaft (static zahl) zu. Wenn du statische Eigenschaften nutzen möchtest (was Vor- und Nachteile, aber hauptsächlich Nachteile hat), musst du über die Klasse zugreifen, also A.zahl. Oder du machst zahl zur Instanzvariablen (ohne static) und greifst so zu, wie du es haben möchtest.
30. Mai 201510 j Du solltest dir am besten mal erschließen, was static überhaupt bedeutet. Ein erster Anlaufpunkt wäre bspw.: https://msdn.microsoft.com/de-de/library/98f28cdx.aspx?f=255&MSPPError=-2147217396
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.