1

strSide "does not exist in the current context"次のコードでは、示されているようにブレークポイントを配置すると、何を試しても nameが表示されます。の値が整数に変換されるようstrSideに、最後の文字を含めてからその文字を削除したいと考えています。コンパイル エラーは発生しませんが、実行時エラーが発生します。rawIdrawId

の値が の場合rawId8429Rストリッピングは機能しますが、 RstrSide に割り当てられた を取得できません。

        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 に答える