【问题标题】:How to fix int does not contain a definition for int.TryParse()?如何修复 int 不包含 int.TryParse() 的定义?
【发布时间】: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


【解决方案1】:

事实证明,这是周五下午不应该做的事情之一。该解决方案有几个项目:移动设备上的客户端,因此是 CF。用于 Web 服务的服务器。还有一个测试项目,它直接调用 Web 服务以便于调试,使用桌面 winform,即没有 CF,使用 int.TryParse() ... :-) 我们还在努力升级到更现代的移动设备,希望避免CF。

底线是 VS 并没有那么糟糕,但也不是很容易。大多数错误都是指向实际问题的有效指针。另一方面遗憾的是CF如此有限,而今天的移动设备已经不再那么娇小了。

【讨论】:

  • 搞笑的是,我在星期五下午遇到了同样的问题。让我开心。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-11
相关资源
最近更新 更多