C# 解析值如果不为空

标签 c# parsing null

这不是真正的问题,如果这是一个愚蠢的问题,我深表歉意,但这只是我很好奇的问题。假设我想在字符串不为 null 时将字符串参数解析为整数,否则将整数设置为 -1。有没有更好的方法来写这个语句:

int id = context.Request["Id"] == null ? -1 : int.Parse(context.Request["Id"]);

必须评估字符串以查看它是否为空,然后再次评估以解析它,这看起来很麻烦。现在我想到了,这已经提出了对象并访问对象属性(如果它不为空)。所以像这样:

int id = person == null ? -1 : person.id;

这是公认的做法吗?

最佳答案

对于您的第一个示例,您可以使用 null coalescing operator :

int id = int.Parse(context.Request["Id"] ?? "-1");

如果存在 null-safe dereferencing operator,则可以改进第二个示例但由于它在 C# 中不存在,所以您的方法很好:

int id = person == null ? -1 : person.Id;

关于C# 解析值如果不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11728498/

相关文章:

c# - x86 与 x64 上的 Mod (%) 运算符

Java 长空字符串

c# - System.Windows.Input 不存在?

c# - 协助在 C# 中连接到 MYSQL 表

parsing - Boost Spirit是否可以处理类似Postscript/PDF的语言?

java - SAX解析器加载DTD文件

java - 什么是解析/解析?

r - 将列表中的 NULL 更改为 NA 而不进行转换

objective-c - NSArray arrayWithObjects : if nil is meant to mark array end, 我可以做...无,无]?

c# - mvc5 身份 AllowAnonymous