Laden...

Struktur und Funktionsfehler

Erstellt von theliquidone vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.132 Views
T
theliquidone Themenstarter:in
2 Beiträge seit 2008
vor 15 Jahren
Struktur und Funktionsfehler

Hi.
Ich beschäftige mich seit kurzer Zeit mit C# und habe mich deshalb erst jetzt hier angemeldet und per Suche gleich schon einige Hilfe gefunden.
Durch VB.NET und C++ bin ich doch recht schnell reingekommen, das einzige Problem, welches mich momentan noch plagt, ist, dass der Funktionsparameter kein Keyword sein darf (soweit ich das unter der Fehlermeldung verstehe).

Ich bin dabei, testweise ein HighlighterControl zu basteln, also habe ich 2 Strukturen angelegt, einmal die Struktur "Keyword" und "KeywordParam". Zudem eine Funktion, welche das ganze zu meinem Keyword-Array hinzufügt.

        //
        // Klassenvariablen
        //
        private Keyword[] Keywords = new Keyword[2000];



        //
        // Öffentliche Funktionen
        //
        public void addKeyword(Keyword Word)
        {
            this.Keywords[this.Keywords.Length] = Word;
        }



        //
        // Strukturen
        //
        struct Keyword
        {
            String Word;
            Font Schrift;
            Color Farbe;
            KeywordParam[] Params;

            public Keyword(String Word, [Optional, DefaultParameterValue(new Font("Courier New", 10))] Font Schrift, [Optional, DefaultParameterValue(Color.Black)] Color Farbe, [Optional, DefaultParameterValue()] KeywordParam[] Params)
            {
                this.Word = Word;
                this.Schrift = Schrift;
                this.Farbe = Farbe;
                this.Params = Params;
            }
        }

        struct KeywordParam
        {
            String Word;
            String Type;
            String Beschreibung;
            bool Optional;

            public KeywordParam(String Word, [Optional, DefaultParameterValue("")] String Type, [Optional, DefaultParameterValue("")] String Beschreibung, [Optional, DefaultParameterValue(false)] bool Optional)
            {
                this.Word = Word;
                this.Type = Type;
                this.Beschreibung = Beschreibung;
                this.Optional = Optional;
            }
        }

Der Fehler ist in Zeile 11, folgender: "Inkonsistenter Zugriff: Parametertyp "CSyntaxTextBox.SyntaxTextBox.Keyword" ist weniger zugreifbar als Methode. [...]"
Ich habe schon viel probiert, doch ich kriege ihn einfach nicht weg 😠

Dann habe ich auch gleich nochmal eine Frage zu dem Array -, ist es möglich, diese Zeile (Z. 13) zu vereinfachen?

this.Keywords[this.Keywords.Length] = Word;

Vielen Dank schonmal für alles, was ich an Antworten bekomme.
~ Chris

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Chrisber,

Inkonsistenter Zugriff: Parametertyp "CSyntaxTextBox.SyntaxTextBox.Keyword" ist weniger zugreifbar als Methode. [...]

siehe [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen).

Noch als Tipp: "zugreifbar" bezieht sich auf die Zugriffsmodifier private, protected, usw.

Dann habe ich auch gleich nochmal eine Frage

Bitte nur eine Frage pro Thread. Siehe [Hinweis] Wie poste ich richtig? Punkt 1.2. Deshalb nur in aller Kürze. Verwende statt des Arrays List<Keyword>, dann kannst du in deiner Methode die Add-Methode von List<T> verwenden.

herbivore

T
theliquidone Themenstarter:in
2 Beiträge seit 2008
vor 15 Jahren

Vielen Dank, werde das in Zukunft befolgen.
Konnte die Probleme nun lösen, super Support 👍

~ Chris