...est inaccessible en raison de son niveau de protection en c#/asp.net
J'ai une application avec une classe distincte, que je suis l'instanciation dans le code-behind de fichier (dans le Page_Load). Dans la classe il ya quelques méthodes que je veux être en mesure d'appeler depuis le code-behind de fichier, mais par une raison quelconque, il ne fonctionne pas (SecretNumber.MakeGuess(int) est inaccessible en raison de son niveau de protection). La classe ainsi que les méthodes sont publiques, donc ce qui peut être la raison?
//Par défaut.asx.cs
...
protected void btnCheckNr_Click(object sender, EventArgs e)
{
if (!Page.IsValid){
return;
}
else{
var guessedNr = int.Parse(inputBox.Text);
var result = SecretNumber.MakeGuess(guessedNr); <- inaccessible due to...
}
}
//SecretNumber.cs
public class SecretNumber {
enum Outcome {
Indefinite,
Low,
High,
Correct,
NoMoreGuesses,
PreviousGuess
};
//Other code goes here...
public Outcome MakeGuess(int guess) {
//Other code here
}
}
Oui je sais il y a beaucoup de questions concernant cette commune de message d'erreur, mais aucun de ceux que j'ai lu résout mon problème.
OriginalL'auteur holyredbeard | 2012-02-11
Vous devez vous connecter pour publier un commentaire.
C'est parce que votre Résultat énumération est privé. Également dans le code que vous avez, MakeGuess doit être marqué comme statique à être utilisées de la façon dont vous l'avez écrit.
OriginalL'auteur John Kraft
Vous êtes à l'appel de la méthode, comme si c'est
static
, il n'est pourtant pas unstatic
méthode. Comment avez votre code, même compiler??À préciser, ce n'est pas la cause de problème d'accessibilité, et d'autres ont posté la solution pour cela. Mais la manière précitée vous appelez la méthode à est également un problème très évident (sauf si vous mettez juste une faute de frappe en ne montrant pas qui est en fait
static
lors de la validation de votre code).OriginalL'auteur
Résultat qui est nécessaire pour être déclaré en public et je ne peux pas dire si vous avez eu la classe initialisé auquel cas elle devra être déclarée ou statique.
OriginalL'auteur OnResolve
Vous avez à
public Static Class SecretNumber
au lieu depublic Class SecretNumber
OriginalL'auteur Rashid