Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice
Juste après l'instruction string strNom = strContenuPP.Substring(1, longnom - 1);
j'obtiens en exécution pas à pas l'erreur strNom : The name 'strNom' does not exist in the current context alors que je vérifie qu'il y a bien un texte dans strContenuPP.Substring(1, longnom - 1)
Bonjour,
Testé avec VS 2008 dans un static void Main en mode Debug, cela marche chez moi...
"Optimize code" serait il activé dans la config de débogage ? Je crois me souvenir que cela peut pertuber le pas à pas, l'optimization pouvant modifier légèrement le code sous-jacent...
-- Patrice
Juste après l'instruction
string strNom = strContenuPP.Substring(1, longnom - 1);
j'obtiens en exécution pas à pas l'erreur
strNom : The name 'strNom' does not exist in the current context
alors que je vérifie qu'il y a bien un texte dans
strContenuPP.Substring(1, longnom - 1)
Bonjour,
Testé avec VS 2008 dans un static void Main en mode Debug, cela marche chez
moi...
"Optimize code" serait il activé dans la config de débogage ? Je crois me
souvenir que cela peut pertuber le pas à pas, l'optimization pouvant
modifier légèrement le code sous-jacent...
Juste après l'instruction string strNom = strContenuPP.Substring(1, longnom - 1);
j'obtiens en exécution pas à pas l'erreur strNom : The name 'strNom' does not exist in the current context alors que je vérifie qu'il y a bien un texte dans strContenuPP.Substring(1, longnom - 1)
Bonjour,
Testé avec VS 2008 dans un static void Main en mode Debug, cela marche chez moi...
"Optimize code" serait il activé dans la config de débogage ? Je crois me souvenir que cela peut pertuber le pas à pas, l'optimization pouvant modifier légèrement le code sous-jacent...
-- Patrice
Gloops
Patrice a écrit, le 04/03/2010 13:24 :
"Optimize code" serait il activé dans la config de débogage ? Je cr ois me souvenir que cela peut pertuber le pas à pas, l'optimization pouvant modifier légèrement le code sous-jacent...
Salut,
J'ai cherché "Optimize" dans le code de toute la solution, rien trouvé . ça dépendrait d'une option par défaut ? Apparemment il faut parcour ir un certain nombre de rubriques dans MSDN avant de tomber dessus.
Enfin ça pourrait effectivement être une explication, ce qui fait que j'ai dû déclarer la variable au niveau fonction plutôt qu'au niveau bloc.
Alors ce que tu dis me rassure, ce n'est peut-être pas moi qui ai tapé une "conceté", comme dit un certain Sieur Bellamy ...
Patrice a écrit, le 04/03/2010 13:24 :
"Optimize code" serait il activé dans la config de débogage ? Je cr ois me
souvenir que cela peut pertuber le pas à pas, l'optimization pouvant
modifier légèrement le code sous-jacent...
Salut,
J'ai cherché "Optimize" dans le code de toute la solution, rien trouvé .
ça dépendrait d'une option par défaut ? Apparemment il faut parcour ir un
certain nombre de rubriques dans MSDN avant de tomber dessus.
Enfin ça pourrait effectivement être une explication, ce qui fait que
j'ai dû déclarer la variable au niveau fonction plutôt qu'au niveau bloc.
Alors ce que tu dis me rassure, ce n'est peut-être pas moi qui ai tapé
une "conceté", comme dit un certain Sieur Bellamy ...
"Optimize code" serait il activé dans la config de débogage ? Je cr ois me souvenir que cela peut pertuber le pas à pas, l'optimization pouvant modifier légèrement le code sous-jacent...
Salut,
J'ai cherché "Optimize" dans le code de toute la solution, rien trouvé . ça dépendrait d'une option par défaut ? Apparemment il faut parcour ir un certain nombre de rubriques dans MSDN avant de tomber dessus.
Enfin ça pourrait effectivement être une explication, ce qui fait que j'ai dû déclarer la variable au niveau fonction plutôt qu'au niveau bloc.
Alors ce que tu dis me rassure, ce n'est peut-être pas moi qui ai tapé une "conceté", comme dit un certain Sieur Bellamy ...
Gloops
Gloops a écrit, le 04/03/2010 12:14 :
Bonjour tout le monde,
Juste après l'instruction string strNom = strContenuPP.Substring(1, longnom - 1);
j'obtiens en exécution pas à pas l'erreur strNom : The name 'strNom' does not exist in the current context
alors que je vérifie qu'il y a bien un texte dans strContenuPP.Substring(1, longnom - 1)
Comment est-ce possible ?
Ah il y a un truc que je n'ai pas dit c'est que j'utilise VS 2005.
Gloops a écrit, le 04/03/2010 12:14 :
Bonjour tout le monde,
Juste après l'instruction
string strNom = strContenuPP.Substring(1, longnom - 1);
j'obtiens en exécution pas à pas l'erreur
strNom : The name 'strNom' does not exist in the current context
alors que je vérifie qu'il y a bien un texte dans
strContenuPP.Substring(1, longnom - 1)
Comment est-ce possible ?
Ah il y a un truc que je n'ai pas dit c'est que j'utilise VS 2005.
Juste après l'instruction string strNom = strContenuPP.Substring(1, longnom - 1);
j'obtiens en exécution pas à pas l'erreur strNom : The name 'strNom' does not exist in the current context
alors que je vérifie qu'il y a bien un texte dans strContenuPP.Substring(1, longnom - 1)
Comment est-ce possible ?
Ah il y a un truc que je n'ai pas dit c'est que j'utilise VS 2005.
The Best Poster
Gloops a exprimé avec précision :
Patrice a écrit, le 04/03/2010 13:24 :
"Optimize code" serait il activé dans la config de débogage ? Je crois me souvenir que cela peut pertuber le pas à pas, l'optimization pouvant modifier légèrement le code sous-jacent...
Salut,
J'ai cherché "Optimize" dans le code de toute la solution, rien trouvé. ça dépendrait d'une option par défaut ? Apparemment il faut parcourir un certain nombre de rubriques dans MSDN avant de tomber dessus.
Enfin ça pourrait effectivement être une explication, ce qui fait que j'ai dû déclarer la variable au niveau fonction plutôt qu'au niveau bloc.
Alors ce que tu dis me rassure, ce n'est peut-être pas moi qui ai tapé une "conceté", comme dit un certain Sieur Bellamy ...
Changer le nom de la variable. Toujours le même problème ?
Gloops a exprimé avec précision :
Patrice a écrit, le 04/03/2010 13:24 :
"Optimize code" serait il activé dans la config de débogage ? Je crois me
souvenir que cela peut pertuber le pas à pas, l'optimization pouvant
modifier légèrement le code sous-jacent...
Salut,
J'ai cherché "Optimize" dans le code de toute la solution, rien trouvé.
ça dépendrait d'une option par défaut ? Apparemment il faut parcourir un
certain nombre de rubriques dans MSDN avant de tomber dessus.
Enfin ça pourrait effectivement être une explication, ce qui fait que j'ai dû
déclarer la variable au niveau fonction plutôt qu'au niveau bloc.
Alors ce que tu dis me rassure, ce n'est peut-être pas moi qui ai tapé une
"conceté", comme dit un certain Sieur Bellamy ...
Changer le nom de la variable. Toujours le même problème ?
"Optimize code" serait il activé dans la config de débogage ? Je crois me souvenir que cela peut pertuber le pas à pas, l'optimization pouvant modifier légèrement le code sous-jacent...
Salut,
J'ai cherché "Optimize" dans le code de toute la solution, rien trouvé. ça dépendrait d'une option par défaut ? Apparemment il faut parcourir un certain nombre de rubriques dans MSDN avant de tomber dessus.
Enfin ça pourrait effectivement être une explication, ce qui fait que j'ai dû déclarer la variable au niveau fonction plutôt qu'au niveau bloc.
Alors ce que tu dis me rassure, ce n'est peut-être pas moi qui ai tapé une "conceté", comme dit un certain Sieur Bellamy ...
Changer le nom de la variable. Toujours le même problème ?
Gloops
The Best Poster a écrit, le 04/03/2010 18:06 :
Changer le nom de la variable. Toujours le même problème ?
Dans l'absolu on peut se dire que non puisque créer une variable dans u n bloc de code, ce n'est quand même pas la première fois que je le fais .
En fait cette variable existait en plusieurs blocs de la fonction, j'ai fait ça un peu exprès histoire d'être sûr que le contenu ne passe pas de l'un à l'autre. Du coup déclarer la variable au niveau au-dessus rè gle le problème ... de la variable "non créée". Je perds le bénéfic e de la validité restreinte, bien entendu. Au bout du compte, l'essentiel reste que le programme fonctionne.
Merci en tout cas pour la contribution ...
The Best Poster a écrit, le 04/03/2010 18:06 :
Changer le nom de la variable. Toujours le même problème ?
Dans l'absolu on peut se dire que non puisque créer une variable dans u n
bloc de code, ce n'est quand même pas la première fois que je le fais .
En fait cette variable existait en plusieurs blocs de la fonction, j'ai
fait ça un peu exprès histoire d'être sûr que le contenu ne passe pas de
l'un à l'autre. Du coup déclarer la variable au niveau au-dessus rè gle
le problème ... de la variable "non créée". Je perds le bénéfic e de la
validité restreinte, bien entendu. Au bout du compte, l'essentiel reste
que le programme fonctionne.
Changer le nom de la variable. Toujours le même problème ?
Dans l'absolu on peut se dire que non puisque créer une variable dans u n bloc de code, ce n'est quand même pas la première fois que je le fais .
En fait cette variable existait en plusieurs blocs de la fonction, j'ai fait ça un peu exprès histoire d'être sûr que le contenu ne passe pas de l'un à l'autre. Du coup déclarer la variable au niveau au-dessus rè gle le problème ... de la variable "non créée". Je perds le bénéfic e de la validité restreinte, bien entendu. Au bout du compte, l'essentiel reste que le programme fonctionne.
Merci en tout cas pour la contribution ...
Patrice
Dans l'absolu on peut se dire que non puisque créer une variable dans un bloc de code, ce n'est quand même pas la première fois que je le fais.
En fait cette variable existait en plusieurs blocs de la fonction, j'ai fait ça un peu exprès histoire d'être sûr que le contenu ne passe pas de l'un à l'autre. Du coup déclarer la variable au niveau au-dessus règle le problème ... de la variable "non créée". Je perds le bénéfice de la validité restreinte, bien entendu. Au bout du compte, l'essentiel reste que le programme fonctionne.
Le plus simple est de poster toujours le code minimal mais complet qui montre le problème. L'information en plus que tu donnes là est que le code montré à l'origine pourrait bien être donc dans son propre bloc de code...
Par exemple avec :
static void Main(string[] args) { int a = 10; { int b = 20; b += 1; } a = a * 2; }
Sur la ligne a = a * 2; la fenêtre Watch affichera effectivement ce message pour b. C'est normal b est bien locale au bloc et non pas à la fonction...
-- Patrice
Dans l'absolu on peut se dire que non puisque créer une variable dans un
bloc de code, ce n'est quand même pas la première fois que je le fais.
En fait cette variable existait en plusieurs blocs de la fonction, j'ai
fait ça un peu exprès histoire d'être sûr que le contenu ne passe pas de
l'un à l'autre. Du coup déclarer la variable au niveau au-dessus règle le
problème ... de la variable "non créée". Je perds le bénéfice de la
validité restreinte, bien entendu. Au bout du compte, l'essentiel reste
que le programme fonctionne.
Le plus simple est de poster toujours le code minimal mais complet qui
montre le problème. L'information en plus que tu donnes là est que le code
montré à l'origine pourrait bien être donc dans son propre bloc de code...
Par exemple avec :
static void Main(string[] args)
{
int a = 10;
{
int b = 20;
b += 1;
}
a = a * 2;
}
Sur la ligne a = a * 2; la fenêtre Watch affichera effectivement ce message
pour b. C'est normal b est bien locale au bloc et non pas à la fonction...
Dans l'absolu on peut se dire que non puisque créer une variable dans un bloc de code, ce n'est quand même pas la première fois que je le fais.
En fait cette variable existait en plusieurs blocs de la fonction, j'ai fait ça un peu exprès histoire d'être sûr que le contenu ne passe pas de l'un à l'autre. Du coup déclarer la variable au niveau au-dessus règle le problème ... de la variable "non créée". Je perds le bénéfice de la validité restreinte, bien entendu. Au bout du compte, l'essentiel reste que le programme fonctionne.
Le plus simple est de poster toujours le code minimal mais complet qui montre le problème. L'information en plus que tu donnes là est que le code montré à l'origine pourrait bien être donc dans son propre bloc de code...
Par exemple avec :
static void Main(string[] args) { int a = 10; { int b = 20; b += 1; } a = a * 2; }
Sur la ligne a = a * 2; la fenêtre Watch affichera effectivement ce message pour b. C'est normal b est bien locale au bloc et non pas à la fonction...
-- Patrice
Gloops
Patrice a écrit, le 05/03/2010 13:04 :
Dans l'absolu on peut se dire que non puisque créer une variable dan s un bloc de code, ce n'est quand même pas la première fois que je le f ais.
En fait cette variable existait en plusieurs blocs de la fonction, j'a i fait ça un peu exprès histoire d'être sûr que le contenu ne pa sse pas de l'un à l'autre. Du coup déclarer la variable au niveau au-dessus r ègle le problème ... de la variable "non créée". Je perds le bénéfic e de la validité restreinte, bien entendu. Au bout du compte, l'essentiel re ste que le programme fonctionne.
Le plus simple est de poster toujours le code minimal mais complet qui montre le problème. L'information en plus que tu donnes là est que le code montré à l'origine pourrait bien être donc dans son propre bloc d e code...
Par exemple avec :
static void Main(string[] args) { int a = 10; { int b = 20; b += 1; } a = a * 2; }
Sur la ligne a = a * 2; la fenêtre Watch affichera effectivement c e message pour b. C'est normal b est bien locale au bloc et non pas à la foncti on...
Oui ça d'accord.
Le code était plutôt, en gros, du type
{ { int a = 0; affiche(a); } { int a = 1; // protestation du compilateur affiche(a); } }
et j'ai pu faire fonctionner ça comme ça :
{ int a; { a = 0; affiche(a); } { a = 1; affiche(b); } }
Patrice a écrit, le 05/03/2010 13:04 :
Dans l'absolu on peut se dire que non puisque créer une variable dan s un
bloc de code, ce n'est quand même pas la première fois que je le f ais.
En fait cette variable existait en plusieurs blocs de la fonction, j'a i
fait ça un peu exprès histoire d'être sûr que le contenu ne pa sse pas de
l'un à l'autre. Du coup déclarer la variable au niveau au-dessus r ègle le
problème ... de la variable "non créée". Je perds le bénéfic e de la
validité restreinte, bien entendu. Au bout du compte, l'essentiel re ste
que le programme fonctionne.
Le plus simple est de poster toujours le code minimal mais complet qui
montre le problème. L'information en plus que tu donnes là est que le code
montré à l'origine pourrait bien être donc dans son propre bloc d e code...
Par exemple avec :
static void Main(string[] args)
{
int a = 10;
{
int b = 20;
b += 1;
}
a = a * 2;
}
Sur la ligne a = a * 2; la fenêtre Watch affichera effectivement c e message
pour b. C'est normal b est bien locale au bloc et non pas à la foncti on...
Oui ça d'accord.
Le code était plutôt, en gros, du type
{
{
int a = 0;
affiche(a);
}
{
int a = 1; // protestation du compilateur
affiche(a);
}
}
et j'ai pu faire fonctionner ça comme ça :
{
int a;
{
a = 0;
affiche(a);
}
{
a = 1;
affiche(b);
}
}
Dans l'absolu on peut se dire que non puisque créer une variable dan s un bloc de code, ce n'est quand même pas la première fois que je le f ais.
En fait cette variable existait en plusieurs blocs de la fonction, j'a i fait ça un peu exprès histoire d'être sûr que le contenu ne pa sse pas de l'un à l'autre. Du coup déclarer la variable au niveau au-dessus r ègle le problème ... de la variable "non créée". Je perds le bénéfic e de la validité restreinte, bien entendu. Au bout du compte, l'essentiel re ste que le programme fonctionne.
Le plus simple est de poster toujours le code minimal mais complet qui montre le problème. L'information en plus que tu donnes là est que le code montré à l'origine pourrait bien être donc dans son propre bloc d e code...
Par exemple avec :
static void Main(string[] args) { int a = 10; { int b = 20; b += 1; } a = a * 2; }
Sur la ligne a = a * 2; la fenêtre Watch affichera effectivement c e message pour b. C'est normal b est bien locale au bloc et non pas à la foncti on...
Oui ça d'accord.
Le code était plutôt, en gros, du type
{ { int a = 0; affiche(a); } { int a = 1; // protestation du compilateur affiche(a); } }
et j'ai pu faire fonctionner ça comme ça :
{ int a; { a = 0; affiche(a); } { a = 1; affiche(b); } }
Patrice
Le code était plutôt, en gros, du type
{ { int a = 0; affiche(a); } { int a = 1; // protestation du compilateur affiche(a); } }
Sûr ? On peut définir deux variables de même nom à partir du moment où elles sont dans des blocs différents.
Par contre définir une variable locale à la fonction et une variable de même nom locale à un bloc fait que dans le bloc, il devient impossible de distinguer les deux variables. C'est donc interdit par le compilateur et je pense que c'était plutôt dans ce cas de figure que tu étais : int a=0; { int a; affiche(a); // Le compilateur proteste car impossible de savoir si il s'agit de la variable "a" locale à la fonction ou de la variable "a" locale au bloc. }
-- Patrice
Le code était plutôt, en gros, du type
{
{
int a = 0;
affiche(a);
}
{
int a = 1; // protestation du compilateur
affiche(a);
}
}
Sûr ? On peut définir deux variables de même nom à partir du moment où elles
sont dans des blocs différents.
Par contre définir une variable locale à la fonction et une variable de même
nom locale à un bloc fait que dans le bloc, il devient impossible de
distinguer les deux variables. C'est donc interdit par le compilateur et je
pense que c'était plutôt dans ce cas de figure que tu étais :
int a=0;
{
int a;
affiche(a); // Le compilateur proteste car impossible de savoir si il
s'agit de la variable "a" locale à la fonction ou de la variable "a" locale
au bloc.
}
{ { int a = 0; affiche(a); } { int a = 1; // protestation du compilateur affiche(a); } }
Sûr ? On peut définir deux variables de même nom à partir du moment où elles sont dans des blocs différents.
Par contre définir une variable locale à la fonction et une variable de même nom locale à un bloc fait que dans le bloc, il devient impossible de distinguer les deux variables. C'est donc interdit par le compilateur et je pense que c'était plutôt dans ce cas de figure que tu étais : int a=0; { int a; affiche(a); // Le compilateur proteste car impossible de savoir si il s'agit de la variable "a" locale à la fonction ou de la variable "a" locale au bloc. }
-- Patrice
Gloops
Patrice a écrit, le 05/03/2010 17:48 :
Le code était plutôt, en gros, du type
{ { int a = 0; affiche(a); } { int a = 1; // protestation du compilateur affiche(a); } }
Sûr ? On peut définir deux variables de même nom à partir du mo ment où elles sont dans des blocs différents.
Par contre définir une variable locale à la fonction et une variabl e de même nom locale à un bloc fait que dans le bloc, il devient impossible de distinguer les deux variables. C'est donc interdit par le compilateur e t je pense que c'était plutôt dans ce cas de figure que tu étais : int a=0; { int a; affiche(a); // Le compilateur proteste car impossible de savoir si il s'agit de la variable "a" locale à la fonction ou de la variable "a" locale au bloc. }
ça, ça arrive, mais alors on n'en parle pas dans les newsgroups, parc e qu'alors on obtient un message du type "cette variable ne peut pas être créée car cela changerait le sens du nom ¤¤¤ déclaré à un autre niveau". De mémoire, mais je pense que les gens qui ont lu ce message le reconnaissent.
Patrice a écrit, le 05/03/2010 17:48 :
Le code était plutôt, en gros, du type
{
{
int a = 0;
affiche(a);
}
{
int a = 1; // protestation du compilateur
affiche(a);
}
}
Sûr ? On peut définir deux variables de même nom à partir du mo ment où elles
sont dans des blocs différents.
Par contre définir une variable locale à la fonction et une variabl e de même
nom locale à un bloc fait que dans le bloc, il devient impossible de
distinguer les deux variables. C'est donc interdit par le compilateur e t je
pense que c'était plutôt dans ce cas de figure que tu étais :
int a=0;
{
int a=10;
affiche(a); // Le compilateur proteste car impossible de savoir si il
s'agit de la variable "a" locale à la fonction ou de la variable "a" locale
au bloc.
}
ça, ça arrive, mais alors on n'en parle pas dans les newsgroups, parc e
qu'alors on obtient un message du type "cette variable ne peut pas être
créée car cela changerait le sens du nom ¤¤¤ déclaré à un autre niveau".
De mémoire, mais je pense que les gens qui ont lu ce message le
reconnaissent.
{ { int a = 0; affiche(a); } { int a = 1; // protestation du compilateur affiche(a); } }
Sûr ? On peut définir deux variables de même nom à partir du mo ment où elles sont dans des blocs différents.
Par contre définir une variable locale à la fonction et une variabl e de même nom locale à un bloc fait que dans le bloc, il devient impossible de distinguer les deux variables. C'est donc interdit par le compilateur e t je pense que c'était plutôt dans ce cas de figure que tu étais : int a=0; { int a; affiche(a); // Le compilateur proteste car impossible de savoir si il s'agit de la variable "a" locale à la fonction ou de la variable "a" locale au bloc. }
ça, ça arrive, mais alors on n'en parle pas dans les newsgroups, parc e qu'alors on obtient un message du type "cette variable ne peut pas être créée car cela changerait le sens du nom ¤¤¤ déclaré à un autre niveau". De mémoire, mais je pense que les gens qui ont lu ce message le reconnaissent.
Patrice
ça, ça arrive, mais alors on n'en parle pas dans les newsgroups, parce qu'alors on obtient un message du type "cette variable ne peut pas être créée car cela changerait le sens du nom ¤¤¤ déclaré à un autre niveau". De mémoire, mais je pense que les gens qui ont lu ce message le reconnaissent.
Au temps pour moi... C'est le "protestation du compilateur" qui m'a induit en erreur. Effectivement en relisant le fil je vois que c'était un pb d'exécution du code en pas à pas et non pas un pb de compilation...
-- Patrice
ça, ça arrive, mais alors on n'en parle pas dans les newsgroups, parce
qu'alors on obtient un message du type "cette variable ne peut pas être
créée car cela changerait le sens du nom ¤¤¤ déclaré à un autre niveau".
De mémoire, mais je pense que les gens qui ont lu ce message le
reconnaissent.
Au temps pour moi... C'est le "protestation du compilateur" qui m'a induit
en erreur. Effectivement en relisant le fil je vois que c'était un pb
d'exécution du code en pas à pas et non pas un pb de compilation...
ça, ça arrive, mais alors on n'en parle pas dans les newsgroups, parce qu'alors on obtient un message du type "cette variable ne peut pas être créée car cela changerait le sens du nom ¤¤¤ déclaré à un autre niveau". De mémoire, mais je pense que les gens qui ont lu ce message le reconnaissent.
Au temps pour moi... C'est le "protestation du compilateur" qui m'a induit en erreur. Effectivement en relisant le fil je vois que c'était un pb d'exécution du code en pas à pas et non pas un pb de compilation...