C# “est inaccessible en raison de son niveau de protection” erreur dans le constructeur

Le constructeur de la classe fille "césar" donne une erreur. Il est dit que le nom, le type est inaccessible en raison de son niveau de protection. Comment venir? Comme c'est un enfant de la classe dérivée de "Chiffre" de la classe, il ne devrait pas donner une erreur de ce genre. Comment puis-je remédier à cette situation. Mais je veux que ceux des variables privées. Je ne veux pas les changer au public.

***Le deuxième exemple de code qui fonctionne. Quelqu'un peut-il voir une différence?

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;
}
}
}

----------------------------- Nouvelle Édition ----------------

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! Vous êtes à l'aide de C#...utiliser les Propriétés au lieu de getter/setter.
  • Le intitulé peut-être une bonne lecture pour le poster aussi. Le code est très Java-like. 😉
  • Ouais en fait ma préférée de la langue est en Java donc je suis très utilisé. Que C# est similaire à Java, j'utilise mon java proggramming habitudes en C# aussi 😀 Mais oui vous avez raison, de toute façon 🙂
InformationsquelleAutor Alptugay | 2011-03-16