首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >条件运算符不按预期工作

条件运算符不按预期工作
EN

Stack Overflow用户
提问于 2013-06-14 13:08:17
回答 5查看 104关注 0票数 0

在下面的代码中,我使用条件运算符查找空值,并在找到空值时赋值另一个值。我的问题是,由于某些原因,它没有正确地检测空值。

代码语言:javascript
复制
sliderQuestion11.Value = Convert.ToDouble(cs.q11 != null ? cs.q11 : "10");

cs是一个由SQLite查询填充的类,q11是一个字符串。

我得到一个“值不能为空”错误。谢谢。

编辑

谢谢大家的帮助。所有这些答案都应该奏效,但我必须做的是,而不是仅仅返回。

代码语言:javascript
复制
query.FirstOrDefault()

我不得不做以下事情

代码语言:javascript
复制
CustomerSurvey cs = new CustomerSurvey();
cs.q1 = query.FirstOrDefault().q1 ?? "-10";
cs.q2 = query.FirstOrDefault().q2 ?? "-10";
cs.q3 = query.FirstOrDefault().q3 ?? "-10";                        
cs.srID = query.FirstOrDefault().srID;

现在这件事起作用了

代码语言:javascript
复制
sliderQuestion11.Value = Convert.ToDouble(cs.q11 != "-10" ? cs.q11 : "10");

(我知道你会说为什么不把它设置为10,但我需要在代码的其他地方检测到一个空值。所以我才用-10)

EN

回答 5

Stack Overflow用户

发布于 2013-06-14 13:10:49

也许你需要:

代码语言:javascript
复制
!string.IsNullOrEmpty(cs.q11) ? cs.qll : "10";

使用string.IsNullOrEmpty的原因是字符串可能只是空的,而不是null

完整片段:

代码语言:javascript
复制
sliderQuestion11.Value = Convert.ToDouble(!string.IsNullOrEmpty(cs.q11) ? cs.qll : "10");
票数 3
EN

Stack Overflow用户

发布于 2013-06-14 13:11:17

您还可以尝试以下代码:

代码语言:javascript
复制
sliderQuestion11.Value = Convert.ToDouble(cs.q11 ?? "10");
票数 1
EN

Stack Overflow用户

发布于 2013-06-14 13:11:16

也许应该是

代码语言:javascript
复制
sliderQuestion11.Value = (cs != null && (!string.IsNullOrWhitespace(cs.q11)) ? Convert.ToDouble(cs.q11) : 10);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17109241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档