我收到以下警告:
在关闭时访问foreach变量.使用不同版本的编译器编译时可能会有不同的行为.
这就是我的编辑器中的样子:

我知道怎么修这个警告,但我想知道为什么我会收到这个警告?
这是关于"CLR"版本的吗?它与"IL"有关吗?
我正在创建一些动态linq并遇到以下异常问题:
没有为类型'System.Nullable`1 [System.DateTime]'和'System.DateTime'定义二元运算符GreaterThanOrEqual
我明白了,因为我的字段类型是可以为空的,而且我实际上是在DateTime.Now中传递的.
所以在试图解决这个问题时我已经尝试过了
System.Nullable<DateTime> now;
now = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)
但结果类型是一个不可为空的对象,因此仍然给我上述异常.
有什么建议?!
更新:为了进一步说明,now变量在设置时变为非可空类型,而不是保持为可空的DateTime,因此匹配会引发异常
更新:可以在CodePlex项目中看到实际代码:
http://webquarters.codeplex.com/SourceControl/changeset/view/36529#574700
违规线约为145
fExp = Expression.GreaterThanOrEqual(fExpLeft, fExpRight);
Run Code Online (Sandbox Code Playgroud)