【发布时间】:2014-03-21 16:07:32
【问题描述】:
在我的新 CF winform 中,我突然无法编码 int.TryParse(),而 VS 显示消息 'int' does not contain a definition for 'TryParse',但在另一种形式中这没问题。好奇怪!
我通过 Go To Definition 追踪到,旧表单使用 int 来自 C:\DOCUME~1\XPMUser\LOCALS~1\Temp\3464$CommonLanguageRuntimeLibrary$v2.0.50727\System.Int32.cs,当然有 TryParse(),而我的新代码使用 int 来自 C:\DOCUME~1\XPMUser\LOCALS~1\Temp\3464$mscorlib.dll$v2.0.50727\System.Int32.cs,没有 @ 987654329@.
在项目的引用列表中,有一个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的一部分。这有区别吗?
【问题讨论】:
-
您是否安装了所有 .NET 框架?如果您使用的是 Windows 7+,那么它们应该都在那里,所以检查一下。您是否覆盖了该方法?我们需要查看代码本身,看看出了什么问题。
-
.NET CF 仅部分支持此方法。它当然不支持不带参数的 TryParse() 重载。永远不要忘记发布 sn-p。
-
我继承了这个项目,并且在同一个项目的另一种形式中,int 确实有一个 .TryParse()。那么怎么可能安装不正确呢?这真的让我很困惑。顺便说一句,这是Win7下的XP模式。我将发布一些实际代码。
-
TryParse 从未存在于任何原语的 CF 版本中。如果你有它,它来自其他库,你需要找到那个库(或者自己重新编码)。
-
我在这里推荐 Ben 的回答(不是我的):stackoverflow.com/questions/6563968/…
标签: c# winforms visual-studio-2008 compact-framework