string.Format"C"(货币)返回字符串"C"而不是格式化文本

Net*_*awk 4 c# format

我试图确保从TextBox派生的控件中的文本始终格式化为货币.

我已经覆盖了像这样的Text属性.

   public override string Text
    {
        get
        {
            return base.Text;
        }
        set
        {                
            double tempDollarAmount = 0;
            string tempVal = value.Replace("$", "").Replace(",","");
            if (double.TryParse(tempVal, out tempDollarAmount))
            {
                base.Text = string.Format("C", tempDollarAmount);
            }
            else
            {                 
                base.Text = "$0.00";
            }                
        }
    }
Run Code Online (Sandbox Code Playgroud)

结果:

  • 如果我传递值"Text"(AmountControl.Text ="Text";),我的测试页面上的控件文本将按预期设置为"$ 0.00".
  • 如果我传递值7(AmountControl.Text ="7";),我希望看到"$ 7.00",但我的测试页面上的控件文本设置为"C".

我假设我在这里遗漏了一些非常简单的东西.这是关于财产的吗?或者我是否错误地使用字符串格式方法?

Jas*_*yon 13

而不是"C"放"{0:c}"

有关更多字符串格式问题请转到此处