OVH Cloud OVH Cloud

Pure débutant

2 réponses
Avatar
Julien CANIPEL
Messieurs bonjour,

Débutant dans la programmation, en langage C# je recherche des personnes qui
consulteraient ce groupe et m'aiderait à mieux comprendre et maitriser ce
langage.
Mes tte premières questions sont :
-E:\S09\Logique\frmPrénom.cs(160):
'Logique.frmPrénom.contrôle_Prénom(string)' : tous les chemins de code ne
retournent pas nécessairement une valeur qu'est-ce que ça veux dire???
-E:\S09\Logique\frmPrénom.cs(254): Aucune surcharge pour la méthode
'ToUpper' ne prend d'arguments '0'
en sachant que ToUpper() est écrit de la manière suivante

dans une fonction
char a = char.parse...
strf = a.ToUpper()

merci beaucoup et dans l'espoir de vous retourner la pareil
Jju

2 réponses

Avatar
Zazar
Bonjour,

Débutant dans la programmation, en langage C# je recherche des personnes


qui
consulteraient ce groupe et m'aiderait à mieux comprendre et maitriser ce
langage.
Mes tte premières questions sont :
-E:S09LogiquefrmPrénom.cs(160):
'Logique.frmPrénom.contrôle_Prénom(string)' : tous les chemins de code ne
retournent pas nécessairement une valeur qu'est-ce que ça veux dire???




Vous avez défini une fonction, et vous ne renvoyez pas tout le temps une
valeur.
Exemple :
public int Test() {
DoSomething();
//Ici il manque un return
}

autre exemple :
public int Test(bool val) {
if (val) {
DoSomething();
//si val vaut true, le chemin de code ne retourne pas de valeur
// il faut mettre un return là aussi, ou à la fin de la fonction
} else {
DoNothing();
return 0;
}
}

Pour être plus précis sur la signification du message d'erreur :
Un chemin de code, c'est l'ensemble des instructions qui sont exécutées.
Dans le premier exemple, il n'y a qu'un seul chemin de code : l'appel à
DoSomething. Dans le second exemple, il y en a 2 en fonction de la valeur de
val : (test de val puis appel à DoSomething), (test de val puis appel à
DoNothing() puis return). Le premier chemin de code ne contient pas de
return : c'est une erreur pour une fonction;

-E:S09LogiquefrmPrénom.cs(254): Aucune surcharge pour la méthode
'ToUpper' ne prend d'arguments '0'



Cette erreur signifie que vous appelez la méthode ToUpper sans argument,
alors qu'elle en attend.

en sachant que ToUpper() est écrit de la manière suivante

dans une fonction
char a = char.parse...
strf = a.ToUpper()



Là vous avez une autre erreur, ToUpper() est une méthode statique. Ce
signifie qu'elle ne s'applique pas à un objet en particulier. On l'utilise
en donnant le nom de la classe. En tenant compte de l'erreur précédente,
votre code se corrige en :
strf = Char.ToUpper(a);

Pour être plus précis sur la signification du message d'erreur :
Une fonction peut prendre plusieurs jeux de paramètre :
int MyFunction( int val) {..}
int MyFunction( string val) {..}
La fonction MyFunction peut prendre un int ou un string. Une telle fonction
s'appelle un fonction surchargée, et chacune des versions de la fonction
s'appelle une surcharge. Le message d'erreur que vous avez eu signifie que
vous appelez une fonction sans argument, et qu'aucune des surcharges n'est
appellable sans donner d'argument. Le compilateur ne peut donc pas
déterminer quelle fonction appeler : c'est une erreur.

Bon courage,

--
Zazar
Avatar
Julien CANIPEL
Merci beaucoup pour tout cela
julien
"Zazar" a écrit dans le message
de news:
Bonjour,

> Débutant dans la programmation, en langage C# je recherche des personnes
qui
> consulteraient ce groupe et m'aiderait à mieux comprendre et maitriser


ce
> langage.
> Mes tte premières questions sont :
> -E:S09LogiquefrmPrénom.cs(160):
> 'Logique.frmPrénom.contrôle_Prénom(string)' : tous les chemins de code


ne
> retournent pas nécessairement une valeur qu'est-ce que ça veux dire???


Vous avez défini une fonction, et vous ne renvoyez pas tout le temps une
valeur.
Exemple :
public int Test() {
DoSomething();
//Ici il manque un return
}

autre exemple :
public int Test(bool val) {
if (val) {
DoSomething();
//si val vaut true, le chemin de code ne retourne pas de


valeur
// il faut mettre un return là aussi, ou à la fin de la


fonction
} else {
DoNothing();
return 0;
}
}

Pour être plus précis sur la signification du message d'erreur :
Un chemin de code, c'est l'ensemble des instructions qui sont exécutées.
Dans le premier exemple, il n'y a qu'un seul chemin de code : l'appel à
DoSomething. Dans le second exemple, il y en a 2 en fonction de la valeur


de
val : (test de val puis appel à DoSomething), (test de val puis appel à
DoNothing() puis return). Le premier chemin de code ne contient pas de
return : c'est une erreur pour une fonction;

> -E:S09LogiquefrmPrénom.cs(254): Aucune surcharge pour la méthode
> 'ToUpper' ne prend d'arguments '0'

Cette erreur signifie que vous appelez la méthode ToUpper sans argument,
alors qu'elle en attend.

> en sachant que ToUpper() est écrit de la manière suivante
>
> dans une fonction
> char a = char.parse...
> strf = a.ToUpper()

Là vous avez une autre erreur, ToUpper() est une méthode statique. Ce
signifie qu'elle ne s'applique pas à un objet en particulier. On l'utilise
en donnant le nom de la classe. En tenant compte de l'erreur précédente,
votre code se corrige en :
strf = Char.ToUpper(a);

Pour être plus précis sur la signification du message d'erreur :
Une fonction peut prendre plusieurs jeux de paramètre :
int MyFunction( int val) {..}
int MyFunction( string val) {..}
La fonction MyFunction peut prendre un int ou un string. Une telle


fonction
s'appelle un fonction surchargée, et chacune des versions de la fonction
s'appelle une surcharge. Le message d'erreur que vous avez eu signifie que
vous appelez une fonction sans argument, et qu'aucune des surcharges n'est
appellable sans donner d'argument. Le compilateur ne peut donc pas
déterminer quelle fonction appeler : c'est une erreur.

Bon courage,

--
Zazar