1

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

当值为rawIdis8429R时,剥离工作,但我无法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];
            }
4

2 回答 2

3

变量可能已经“优化掉”了吗?它在创建后没有在任何地方使用。有关详细信息,请参阅:如何防止 C# 编译器/CLR 在 DEBUG 构建中优化未使用的变量?.

于 2013-09-28T19:56:43.500 回答
0

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

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

更新,因为你需要这个值,试试这个:

var s = "8429L";
var numbers = s.Substring(0, s.IndexOfAny("RLB".ToCharArray()));
var letter = s.Substring(numbers.Length);
于 2013-09-28T20:10:17.727 回答