该名称在当前上下文中不存在 - grrr

本文关键字:不存在 grrr 上下文 | 更新日期: 2023-09-27 18:33:06

在下面的代码中,无论我尝试什么,名称都会strSide "does not exist in the current context",当我放置如图所示的断点时。 我希望strSide包含rawId中的最后一个字符,然后剥离该字符,以便rawId的值将转换为整数。 我没有收到编译器错误,但确实收到运行时错误。

rawId的值为 8429R 时,剥离工作有效,但我无法将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];
            }

该名称在当前上下文中不存在 - grrr

变量

可能已经被"优化"了吗?创建后不会在任何地方使用。有关详细信息,请参阅以下内容:如何防止 C# 编译器/CLR 优化掉 DEBUG 版本中未使用的变量?。

你需要存储在strSide中的值吗?

如果没有,您可以尝试此替代解决方案

更新,因为您需要该值,请尝试以下操作:

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