comment puis-je utiliser une classe sans instanciation?
J'ai de la classe:
static class GetRole
{
public static string OfUser(string username)
{
string result="None";
foreach (string key in WebConfigurationManager.AppSettings)
{
if (WebConfigurationManager.AppSettings[key].Contains(username))
{
result = WebConfigurationManager.AppSettings[key];
break;
}
}
return result;
}
}
je voudrais l'utiliser lik ethis
string role = GetRole.OfUser(username);
ou comme encore mieux:
string role = GetRole(username);
comment puis-je faire cela?
- Une méthode statique permettra de faire exactement ce que vous voulez. Avez-vous essayé?
- N'est-ce pas comment c'est fait ? ... Ce problème, exécutez-vous en? Que fait le compilateur dire?
- compilateur dit Erreur 7 'OfUser': ne peut pas déclarer les membres de l'instance dans une classe statique C:\
- Le code que vous avez posté n'obtiendra pas cette erreur.
- c'est l'erreur im obtenir
- Pas avec ce code, vous n'êtes pas.
- Concernant le message d'erreur que vous avez posté ci-dessus - il que la référence à la ligne 7? Si oui, quel est le contenu de la ligne 7 dans votre code?
- c'est la ligne 7:public static string OfUser(string username)
- je l'ai résolu 🙂 juste eu à le construire
- Vous pouvez demander à ceux d'entre nous de vous aider dans votre question précédente, trop, car vous instantanément emprunté notre code.
- Cette chaîne de rôle = GetRole(nom d'utilisateur); ne fonctionne pas et il est évident qu'elle défait le but de l'Encapsulation.
Vous devez vous connecter pour publier un commentaire.
Afin de le faire; que semble correct. Avez-vous l'essayer?
Qui ne fonctionnent pas; vous devez spécifier la méthode que vous appelez ainsi que de quelle classe il s'agit d'.
Si vous avez eu une
static void GetRole
à l'intérieur de la même classe que le code que vous appelez à partir, alors vous pourriez le faire.Cependant, juste parce que vous pouvez faire quelque chose ne signifie pas que vous devriez. Le moyen naturel de le faire "obtenir le rôle d'un utilisateur" est d'appeler une méthode qui appartient à l'utilisateur lui-même. Qui à son tour implique d'avoir une classe d'Utilisateur qui vous instancier pour chaque utilisateur.
Vous trompé avec votre premier exemple de comment l'utiliser:
Un membre statique indique qu'il ne dispose pas d'une instance de ce type est de le déclarer. La seule chose qui pourrait vous donner de la difficulté, c'est que votre classe est interne; ce qui signifie que vous ne pouvez pas y accéder à partir d'un montage différent. Essayez de rendre
public static class GetRole
.que vous essayez d'utiliser la variable de la méthode avant il a été défini... la méthode vérifie que
AppSettings[key].Contains(username))
et puis retourne une sortie de sorte que la méthode attend une chaîne de caractères d'entrée comme ça...string role = GetRole.OfUser("NewUsername");