_item = new OutTYonetimOzet();
_item.Banka = Convert.ToDecimal(" ");
liste.Add(_item);
有一个名为liste
的列表。在列表项Banka
中,命名元素是十进制值。我想在屏幕上显示空字符串时显示空字符串。但是这段代码得到了一个无法投射的错误。有什么问题。
错误信息是:
输入字符串的格式不正确。
答案 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作为默认值。