2016-05-02 19 views
-1

Ich bin neu in C# und ich habe einige Fehler festgestellt. Ich habe versucht, nach Antworten und Tutorials zu suchen, aber sie arbeiten nicht für mich. Hier ist der beunruhigende Code:Ein Array deklarieren (Visual C++)

panou_medii->Visible = true ; 
    public: static int[] elem = new int[10] ; 

Und das ist der Fehler: Fehler C2143: Syntaxfehler: fehlende ';' vor "öffentlich". Ohne die öffentliche statische in Front, erhalte ich 4 Fehler und eine Warnung. PS. Ich verwende Visual Studio 2010 und arbeite an einem Formular.

EDIT: Sorry für die Verwirrung jeder, es war ein Visual C++ Windows Form, nicht aC#

+3

Der veröffentlichte Code ist nicht C#. Sind Sie sicher, dass Sie in einem C# -Projekt arbeiten? –

+0

@Bea Willkommen bei Stackoverflow, können Sie uns sagen, welche Art von Projekt Sie erstellt haben? –

+0

Um ehrlich zu sein, habe ich gestern angefangen an einem Windows Form zu arbeiten und die Tutorials von C# funktionieren. – Bea

Antwort

5

Das ist, weil der Code nicht korrekt C# Syntax ist, ich glaube, Sie wollen:

panou_medii.Visible = true; 

public static int[] elem = new int[10]; 
+0

Es erzeugt nur mehr Fehler – Bea

+0

@Bea Ich denke, Sie haben kein C# Windows Forms-Projekt erstellt. Aber ein anderer. Wahrscheinlich C oder C++ –

+0

Ich habe es erneut überprüft und Sie haben Recht, es war eine visuelle C++ Windows Form. Entschuldigung für die Verwirrung – Bea

1

Es ist ein offensichtlicher Fehler in dem Code, den Sie zeigen, und wahrscheinlich ein zweiter, je nachdem, was Sie wirklich tun.

Die leicht ist in der Linie

public: static int[] elem = new int[10] ; 

In C# Zugriffsmodifikatoren (wie public, private, protected etc.) sind nicht mit einem Doppelpunkt (:), so dass die korrekte Syntax ist

public static int[] elem = new int[10]; 

Aber Ihre erste Zeile:

panou_medii->Visible = true ; 

Hier verwenden Sie eine dereferencing/member access operator (->). Dieser Operator kann nur mit Zeigern in einem unsafe Kontext verwendet werden.
Dies ist nicht sehr häufig in C#, und da Sie gesagt haben, dass Sie an einem Formular arbeiten, denke ich, dass es nicht das ist, was Sie beabsichtigten.

Um auf Eigenschaften einer Klasseninstanz in C# zuzugreifen, verwenden wir . operator. Visible in Ihrem Beispiel ist wahrscheinlich eine Eigenschaft von Control und panou_medii ist eine Instanz dieser Control (oder genau eine Variable, die eine Referenz dieser Instanz enthält).

So ist die Visible von Set-Instanz für den Zugriff auf

panou_medii.Visible = true; 

verwenden Wenn Sie jetzt mehr Fehler bekommen, müssen Sie etwas mehr von Ihrem Code zu erhalten. Für den Anfang: Wenn die zwei Zeilen, die Sie gezeigt haben, direkt aufeinander folgen, ist definitiv etwas nicht in Ordnung. Die erste Zeile ist eine Anweisung, die nur innerhalb eine Methode existieren kann. Die zweite Zeile ist eine Elementdeklaration, die nicht in einer Methode enthalten sein kann. (Wenn Sie innerhalb einer Methode eine Variable deklarieren, verwenden Sie keine Zugriffsmodifikatoren wie public).

Verwandte Themen