在我的新CF winform中,我突然无法编码int.TryParse()
, VS显示消息'int' does not contain a definition for 'TryParse'
,但在另一种形式下,这是没有问题的。这么奇怪!
我用Go To Definition跟踪了这一点,旧形式使用int
来自C:DOCUME~1XPMUserLOCALS~1Temp3464$CommonLanguageRuntimeLibrary$v2.0.50727System.Int32.cs
,当然有TryParse()
,而我的新代码使用int
来自C:DOCUME~1XPMUserLOCALS~1Temp3464$mscorlib.dll$v2.0.50727System.Int32.cs
,没有TryParse()
。
在项目的参考列表中,有一个mscorlib
,通过双击我在mscorlib [Compact Framework]
到达对象浏览器,而对象浏览器也显示了一个条目mscorlib
,即没有CF注释。
这对我没有多大帮助,希望有人能帮助我得到TryParse()回来。
下面是错误示例代码:using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
namespace SIClient2.WebServices
{
class Test
{
public Test()
{
int i;
int.TryParse("123", out i); // <== 'int' does not contain a definition for 'TryParse'
}
}
}
没有错误的代码是winform的一部分。这有什么区别吗?
这是你周五下午不应该做的事情之一。该解决方案有几个项目:移动设备上的客户端,因此CF; web服务的服务器。还有一个测试项目,可以直接调用web服务,以便更容易调试,使用桌面winforms,即不使用CF,并使用int.TryParse()…我们也在努力升级到更现代的移动设备,希望能避免CF。
底线是VS不是那么糟糕,但也不是很容易。大多数错误都是指向实际问题的有效指针。另一方面,遗憾的是CF是如此有限,而今天的移动设备已经不再那么小巧了。