C# 当前上下文中不存在该名称-grrr
在下面的代码中,无论我如何尝试,当我放置断点时,名称strSideC# 当前上下文中不存在该名称-grrr,c#,string,scope,runtime-error,C#,String,Scope,Runtime Error,在下面的代码中,无论我如何尝试,当我放置断点时,名称strSide“在当前上下文中不存在”,如图所示。我希望strSide包含rawId中的最后一个字符,然后去掉该字符,以便rawId的值将转换为整数。我没有得到编译器错误,但是得到了运行时错误 当rawId的值为8429R时,剥离工作正常,但我无法获得分配给strSide的R foreach (string fieldName in Request.QueryString) { r
“在当前上下文中不存在”
,如图所示。我希望strSide
包含rawId
中的最后一个字符,然后去掉该字符,以便rawId
的值将转换为整数。我没有得到编译器错误,但是得到了运行时错误
当rawId
的值为8429R
时,剥离工作正常,但我无法获得分配给strSide的R
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];
}
foreach(Request.QueryString中的字符串字段名)
{
rawId=字段名;
String strSide=Convert.ToString(rawId[rawId.Length-1]);该变量可能已被“优化掉”?创建后不会在任何地方使用它。有关详细信息,请参阅:。是否需要存储在strSide中的值
如果没有,你可以试试
更新,因为您需要该值,请尝试以下操作:
var s = "8429L";
var numbers = s.Substring(0, s.IndexOfAny("RLB".ToCharArray()));
var letter = s.Substring(numbers.Length);
是的,我需要这个值。它可以是“R”(右)、“L”(左)或“B”(两者)。我需要将数字部分作为产品ID传递,将字符部分作为需要该部分哪一侧的指示符传递。以下是我尝试过的提取字符//字符串strSide=Convert.ToString(rawId[rawId.Length-1])的方法;//Char strSide=rawId[rawId.Length-1];//String strSide=rawId.Substring(rawId.Length-1,1);Char strSide=Convert.ToChar(rawId.Substring(rawId.Length-1,1));在我的回答中添加了另一个建议,而不是对您的原始问题的回答,即为什么您不能调试。您不能将鼠标悬停在rawId
上,查看该字符串中的最后一个字符吗?或者在rawId
上添加watch。您的语句string strSide=Convert.ToString(rawId[rawId.Length-1]);
什么都不做。你为什么有它?PS!另一种获取最后一个字符作为长度为1的字符串的方法是strSide=rawId.Substring(rawId.length-1);
。