C# 如何控制是否有人向十进制值发送空字符串?
我有一个web服务函数,它有一个十进制值,即BRGEW 客户端应该发送十进制值,但他从SOAP UI发送字符串,转换失败 我这样做是为了控制它,但不起作用C# 如何控制是否有人向十进制值发送空字符串?,c#,c#-4.0,C#,C# 4.0,我有一个web服务函数,它有一个十进制值,即BRGEW 客户端应该发送十进制值,但他从SOAP UI发送字符串,转换失败 我这样做是为了控制它,但不起作用 if (General.BRGEW == 0 || General.BRGEW.ToString() == "") { General.BRGEW =0; } 我怎样才能控制这一切 我想您需要String.IsNullOrEmpty(String)方法 检查如果要检查用户输入是否为十进制,可以尝试此操作 var check= doubl
if (General.BRGEW == 0 || General.BRGEW.ToString() == "") {
General.BRGEW =0;
}
我怎样才能控制这一切 我想您需要String.IsNullOrEmpty(String)方法
检查如果要检查用户输入是否为十进制,可以尝试此操作
var check= double.IsNaN(variable); //It will return boolean value after that add your code logic
首先,您需要检查该值是否为null或空,如果它不是null或空,则转换它
decimal number;
string value = "";
if(!String.IsNullOrEmpty(value))
{
if(Decimal.TryParse(value, out number))
{
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
Console.WriteLine("Unable to convert '{0}'.", value);
}
}
不会有太大的变化:)如果RRGEW
已经是0,那么将其设置为0将没有什么效果
A.让客户发送号码 这将是最简单的解决办法 处理它 如果您无法让客户端发送该号码,则以下操作可能会有所帮助:
General.BRGEW
设为字符串General.BRGEWAsInt
您不需要创建属性,只需在需要时解析即可。它如何“不起作用”?它失败了吗?如果是这样,我相信将If语句改为先请求空字符串就可以了。
double.TryParse
有什么问题吗?我的第一条规则是字符串,即永远不要将某些内容存储、传输或重新保存为字符串。字符串很容易成为自动化中第二差的格式,只有原始字节更差。我的第二条规则是,如果你不能做到这一点,至少尝试在两端选择相同的编码和区域性格式现有的WebService类和模式确实倾向于处理这些细节。通常还需要将字符串解析回一些有用的东西,比如数字。在你试图重新发明轮子之前,先试试这些。但是如果您必须手动执行此操作,那么TryParse()就是您应该寻找的机器人。
if (General.BRGEW == 0)
{
General.BRGEW = 0;
}
public class X {
public string BRGEW {get; set;}
public int BRGEWAsInt => Int32.TryParse(BRGEW, out var number)
? number
: 0;
}