私はシャープCでこのような何かをしたいと思います:非静的/一定値
int i = 0;
foreach (Item item in _Items)
{
foreach (Field theField in doc.Form.Fields)
{
switch (theField.Name)
{
case "Num" + i++.ToString(): // Number of Packages
theField.Value = string.Empty;
break;
}
}
}
私は私ができる場合などNum1を、Num2を、名前の20かそこらのフィールドを持っていますこれを1つのステートメント/ブロックですべて実行してください。そうすることをお勧めします。
しかし、コンパイラはcase文を定数値にする必要があると不平を言っています。ケースステートメントで動的変数を使用する方法があるので、コードを繰り返さないようにすることはできますか?
私はこのメソッドの目的は、私が制御できない命名規則で、フィールドをPDFフォームに取り込むことだと言いました。 "Num1"〜 "Num20"のような名前のフィールドが20行あります。これが私のシナリオでは文字列の連結が役立つ理由です。
[C#switch文の制限 - なぜ?]で議論できなかった(議論されていた)理由は何ですか?(http://stackoverflow.com/questions/44905/c-sharp-switch-statement-limitations-why )私は[この回答](http://stackoverflow.com/a/45584/516797)最高のそれを要約すると思います。 –
'foreach'の内側に' i ++ 'を入れたくないのですか? – TrueWill
C#Switch Statement Limitationsの投稿は私の質問に完全に答えます。ありがとうございます! – nocarrier