2013-09-28 3 views
1

Dans le code suivant, peu importe ce que j'essaie, le nom strSide"does not exist in the current context", lorsque je place un point de rupture comme indiqué. Je veux strSide pour contenir le dernier caractère dans rawId, puis de dépouiller ce caractère de sorte que la valeur de rawId convertira en un nombre entier. Je n'obtiens pas d'erreur de compilation, mais j'obtiens une erreur d'exécution.Le nom n'existe pas dans le contexte actuel - grrr

Lorsque la valeur de rawId est 8429R, l'extraction fonctionne, mais je ne peux pas attribuer le R à strSide.

 foreach (string fieldName in Request.QueryString) 
     { 
       rawId = fieldName; 
       String strSide = Convert.ToString(rawId[rawId.Length - 1]); <-- name does not exist 
       if (!IsNumeric(rawId)) <--break point set here. 
       { 
        rawId = StripRightChar(rawId); 
       } 
       Qty = Request.QueryString[fieldName]; 
      int productId = 0; 
      if (fieldName == "txtReference") 
      { 
       strComments = Request.QueryString[fieldName]; 
      } 
+0

Tu ne peux pas planer juste la souris sur 'rawId' et de voir quel personnage est le dernier en cette chaîne? Ou "Ajouter une montre" sur "rawId". Votre instruction 'String strSide = Convert.ToString (rawId [rawId.Length - 1]);' ne fait rien. Pourquoi l'avez-vous? PS! Une autre façon d'obtenir le dernier caractère en tant que chaîne de longueur 1 est 'strSide = rawId.Substring (rawId.Length - 1);'. –

Répondre

0

Avez-vous besoin de la valeur stockée dans strSide?

Sinon, vous pouvez essayer this alternative solution

mise à jour, car vous avez besoin de la valeur, essayez ceci:

var s = "8429L"; 
var numbers = s.Substring(0, s.IndexOfAny("RLB".ToCharArray())); 
var letter = s.Substring(numbers.Length); 
+0

Oui, j'ai besoin de la valeur. Ce sera soit "R" (droite), "L" (gauche) ou "B" (les deux). J'ai besoin de passer la partie numérique comme un ID de produit et la partie char comme un indicateur de quel (s) côté (s) de la pièce est nécessaire. Voici les méthodes que j'ai essayées pour extraire le caractère // String strSide = Convert.ToString (rawId [rawId.Length - 1]); // Char strSide = rawId [rawId.Length - 1]; // Chaîne strSide = rawId.Substring (rawId.Length - 1, 1); char strSide = Convert.ToChar (rawId.Substring (rawId.Length - 1, 1)); –

+0

Ajout d'une autre suggestion à ma réponse, pas une réponse à votre question initiale pourquoi vous ne pouvez pas déboguer si. –

Questions connexes