1

単純な条件があり、キーワードを使用して実装したいのです?:が、コンパイラが許可しません。これは正確なサンプルです

// in asp page decleration
<ajaxtoolkit:FilteredTextBoxExtender id="ftbeNumeric" runat="server" TargetControlID="textbox1" FilterType="Numbers" />
<asp:TextBox ID="textbox1" runat="server" />

// in code behind 
decimal x = textbox1.Text != string.IsNullOrEmpty ? Convert.ToDecimal(textbox1.Text) : 0;

私もこれを試します

// in code behind 
decimal x = Convert.ToDecimal(textbox1.Text) != 0 ? Convert.ToDecimal(textbox1.Text) : 0;

これらのサンプル面のビットはエラーがあります。

?:これをキーワードで定義する方法は?textbox.text` は null の場合があることに注意してください。

4

3 に答える 3

6

次のように変更することを検討してください

decimal x;
if (!decimal.TryParse(textbox1.Text, out x))
{
    // throw an exception?
    // set it to some default value?
}

もちろん、無効な入力または欠落している入力に対して例外をスローしたい場合は、代わりに .Parse メソッドを使用するだけで、例外がスローされます。ただし、 .TryParse を使用すると、例外のメッセージをカスタマイズしたり、ユーザーに再度プロンプトを表示するなど、別の方法で処理したりすることができます。

于 2010-06-20T05:32:43.693 に答える
3

String.IsNullOrEmptyフィールドではなくメソッドです。したがって、適切な使用法はString.IsNullOrEmpty(textbox1.Text).

于 2010-06-20T05:31:49.497 に答える
0

私はこの声明でそれを修正しました

string.IsNullOrEmpty(textbox1.Text) ? 0 : Convert.ToDecimal(textbox1.Text);
于 2010-06-20T05:31:10.403 に答える