C# "unzugänglich ist aufgrund seiner Schutz-level" - Fehler im Konstruktor

Den Konstruktor der Kind-Klasse "caesar" gibt einen Fehler aus. Es besagt, dass der name, der Typ ist nicht verfügbar, aufgrund seiner Schutz-Ebene. Wie kommt das? Da dies eine Kind-Klasse abgeleitet von "Cipher" - Klasse sollte es nicht geben, eine Fehlermeldung. Wie Bewältige ich diese situation. Aber ich will die Variablen privat sein. Ich will nicht, Sie zu ändern, als öffentlich.

***Der zweite code-Beispiel funktioniert. Kann jemand einen Unterschied feststellen?

namespace Encrypter
{
    class Cipher
    {
        public Cipher(string name, string type)
        {
            setName(name);
            setType(type);

        }
        private string name;
        private string type;

        public void setName(string newName)
        {
            name = newName;
        }
        public string getName()
        {
            return name;
        }
        public void setType(string newType)
        {
            type = newType;
        }
        public string getType()
        {
            return type;
        }
        public string encrypt(string text)
        {
            return text;
        }
        public string decrypt(string text)
        {
            return text;
        }
    }
}




namespace Encrypter
{
    class Caesar : Cipher
    {

        private int shiftamount;
        private string shiftdirection;
        public Caesar(int shiftamount, string shiftdirection) : base(name, type)
        {
            setShiftamount(shiftamount);
            setShiftdirection(shiftdirection);
        }
        public void setShiftamount(int newShiftamount)
        {
            shiftamount = newShiftamount;
        }
        public int getShiftamount()
        {
            return shiftamount;
        }
        public void setShiftdirection(string newShiftdirection)
        {
            shiftdirection = newShiftdirection;
        }
        public string getShiftdirection()
        {
            return shiftdirection;
        }

    }
}

----------------------------- Neu Bearbeiten ----------------

class MyFile
    {
        public MyFile(int id, string name, int size, string type)
        {
            setId(id);
            setName(name);
            setSize(size);
            setType(type);

        }
        private int id;
        private string name;
        private string type;
        private int size;




class Movie : MyFile
    {
        private string director;
        private int release_year;
        public Movie(string director, int release_year, int id, string name, int size) : base( id,  name,  size, "m")
        {
            setDirector(director);
            setRelease_year(release_year);
        }
Gah! Du bist mit C#...verwenden die Eigenschaften anstelle von getter/setter-Methoden.
naming-Richtlinien vielleicht eine gute Lektüre für das Plakat zu. Der code sieht ganz Java-like. 😉
Ja eigentlich meine bevorzugte Sprache ist Java-also ich bin sehr an Sie gewöhnt. Als C# ist ähnlich zu Java, ich meine java proggramming Gewohnheiten in C# zu 😀 Aber ja, Sie sind eh richtig 🙂

InformationsquelleAutor Alptugay | 2011-03-16

Schreibe einen Kommentar