【发布时间】:2011-04-05 09:49:30
【问题描述】:
这让我很困惑。也许我现在太累了。
Rectangle rectangle = new Rectangle(0, 0, image.Width, image.Height);
Rectangle cropArea = inputArea == null ? rectangle : inputArea.Value;
if (inputArea == null)
cropArea = rectangle;
inputArea 是一个可为空的 Rectangle,在我的特殊情况下为空。
前两个语句产生一个初始化为 0 的cropArea。然而,第二个语句根据图像的宽度和高度产生正确的cropArea。我对条件运算符有什么误解吗? inputArea = null 时似乎不返回矩形?使用值类型时有什么奇怪的地方吗?
编辑:好的,我应该先尝试一下:重新启动 VS。似乎调试器对我撒了谎,或者其他什么。无论如何,现在工作。谢谢。
【问题讨论】:
-
我想把它作为一个提示给其他人,重启 VS 总能解决意想不到的问题。你怎么看?
-
谁他妈否决了这个问题???这是一个完全有效的问题,暴露了 Visual Studio 中的一个可怕的错误。
-
顺便说一句,请注意您可以在此处使用空合并运算符而不是条件运算符:croparea = inputArea ??矩形;
标签: c# .net conditional-operator nullable value-type