Comment attribuer une valeur à partir d'un C# méthode statique à une étiquette
J'ai de la suite de fonction statique en c#
public static string Greet(string name)
{
string greeting = "welcome ";
//is it possible to pass this value to a label outside this static method?
string concat = string.Concat(greeting, name);
//error
Label1.text = concat;
//I want to return only the name
return name;
}
Comme vous pouvez le voir dans les commentaires, j'ai envie de ne retenir que le nom de la valeur de retour, mais je tiens à être en mesure de prendre la valeur de la méthode concat variable assigner à un label, mais quand j'essaie de le compilateur refuse, peut-il être fait? Est-il un travail?
Merci.
Pourquoi avez-vous fait la fonction statique? La solution la plus évidente consiste à faire pas statique.
Pour ne pas mentionner qu'il semble étrange de retourner le paramètre dans ce cas.
C'est statique, car il est décoré comme un [WebMethod], puis invoqué avec l'Ajax, la valeur de retour est passé à l'Ajax, j'ai encore besoin d'utiliser la méthode concat variable dans le code derrière. - merci
Pour ne pas mentionner qu'il semble étrange de retourner le paramètre dans ce cas.
C'est statique, car il est décoré comme un [WebMethod], puis invoqué avec l'Ajax, la valeur de retour est passé à l'Ajax, j'ai encore besoin d'utiliser la méthode concat variable dans le code derrière. - merci
OriginalL'auteur tika | 2010-02-05
Vous devez vous connecter pour publier un commentaire.
Si la méthode doit être statique pour certaines raisons, la principale solution ici serait de passer tout état en la méthode - c'est à dire ajouter un paramètre à la méthode qui est soit l'étiquette ou (mieux), certains tapé wrapper avec un réglable propriété comme
.Greeting
:(où
YourType
pourrait être votre contrôle, ou peut-être une interface permettant de ré-utiliser)Ce que vous ne pas voulez faire est d'utiliser l'état statique ou des événements - très facile d'obtenir des fuites de mémoire, etc de cette façon.
Par exemple:
Bonjour Marc, je vous remercie. Ok je fais un wrapper et je peut affecter la valeur: public class MyType { private string x; public string Salut { get { return x; } set { x = valeur; } } } Cependant, je suis toujours de la difficulté à comprendre comment affecter le wrapper de la propriété de l'Étiquette à droite après le Salue la méthode s'exécute. merci à l'avance.
Merci beaucoup Marc, ça marche!!!! Je me réjouis de votre réponse.
OriginalL'auteur Marc Gravell
Non-statique:
Ou encore statique passage de l'étiquette comme
Greet("John", Label1)
:Mais vous ne savez pas pourquoi vous avez besoin de retourner le nom dans les deux cas...si vous l'aviez lors de l'appel de la fonction, vous l'avez déjà dans le champ d'application, vous seriez de retour. Exemple:
Ah, dans ce cas, oui, il a à être statique.
Salut Nick, j'ai essayer cet exemple, mais le compilateur se plaint de ce que le ystème.Web.L'INTERFACE utilisateur.Contrôles webcontrols.Étiquette' ne contient pas une définition pour 'texte'. Je suis désolé, je suis un noob, je suis un simple apprentissage.
OriginalL'auteur Nick Craver
Le problème, c'est que vous essayez d'instancier une variable de classe de méthode statique.
OriginalL'auteur Fitzchak Yitzchaki
Peut-être que je suis à côté de la question, mais ne pourriez-vous faire:
De l'utiliser ensuite comme:
Web méthodes ne doivent pas être statique.
OriginalL'auteur Nismoto