为十进制值分配字符串值

时间:2018-01-25 07:50:03

标签: c# type-conversion variable-assignment

_item = new OutTYonetimOzet();

_item.Banka = Convert.ToDecimal(" "); 

liste.Add(_item);

有一个名为liste的列表。在列表项Banka中,命名元素是十进制值。我想在屏幕上显示空字符串时显示空字符串。但是这段代码得到了一个无法投射的错误。有什么问题。

错误信息是:

  

输入字符串的格式不正确。

2 个答案:

答案 0 :(得分:7)

没有"空白小数"。 decimal不能包含"空白" - 它总是有一个数值。 Convert.ToDecimal(" ")是荒谬的 - 没有任何东西可以返回,这是有道理的。

您可以尝试使用Nullable<decimal>(又名decimal?);即。

public decimal? Banka {get;set;}

_item.Banka = null;

答案 1 :(得分:1)

您也可以使用decimal.TryParse代替Convert。使用此技术,您可以检查字符串是否有效。

        _item = new OutTYonetimOzet();

        decimal val = decimal.MinValue;

        if (decimal.TryParse(" ", out val))
        {
            _item.Banka = val;
        }
        else
        {
            //your default goes here
            _item.Banka = 0;
        }

        liste.Add(_item);

正如Mark建议我使用Nullable<decimal>并使用null作为默认值。