嗨,在阅读NUnit项目的断言类的代码时,我遇到了这个特殊的构造 -
public static void AreEqual(double expected, double? actual, double delta)
{
AssertDoublesAreEqual(expected, (double)actual, delta ,null, null);
}
Run Code Online (Sandbox Code Playgroud)
在此函数中,输入第二个输入参数double?.有趣的是,这段代码在VS2010(C#4.0)中编译没有问题.任何人都知道为什么这不会引发错误?为什么被double?认为是有效的关键字,并且对此有任何特殊意义?.
所以我在Windows 7上运行Visual Studio 2003 - 是的我知道它没有得到官方支持 - 不,不幸的是我无法改变这种情况:-(
在大多数情况下它工作正常,但我有一个特定的问题,我无法弄清楚.如果对字符串执行项目范围搜索(Ctrl - Shift - F),应用程序将挂起.
我有一个相当强大的机器和所有其他繁重的任务,如编译和调试都工作正常.如果我将搜索限制为当前文档(Ctrl-F),它也可以工作.我以管理员身份运行它并已应用VS.NET 2003 SP1.
项目的大小似乎不是问题,因为同事也在为包含5页的单个项目解决方案遇到此问题.
我目前正在使用Windows搜索作为解决方法,我想知道是否有一些我错过了我应该尝试的东西.
我希望从1M行的表中获取最后10行.
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`updated_date` datetime NOT NULL,
PRIMARY KEY (`id`)
)
Run Code Online (Sandbox Code Playgroud)
这样做的一种方法是 -
select * from test order by -id limit 10;
**10 rows in set (0.14 sec)**
Run Code Online (Sandbox Code Playgroud)
另一种方法是 -
select * from test order by id desc limit 10;
**10 rows in set (0.00 sec)**
Run Code Online (Sandbox Code Playgroud)
所以我对这些查询进行了"解释" -
以下是我使用'order by desc'的查询结果
EXPLAIN select * from test order by id desc limit 10;
Run Code Online (Sandbox Code Playgroud)

以下是我使用'order by -id'的查询结果
EXPLAIN select * from test order by -id …Run Code Online (Sandbox Code Playgroud)