【问题标题】:Usage of System.Numerics in VS2008VS2008中System.Numerics的使用
【发布时间】:2011-12-01 04:40:04
【问题描述】:

我使用来自EvilDicom 的开源代码。不幸的是,这些代码在 VS2010 中,它们使用命名空间 System.NumericsMicrosoft.CSharp。我想知道VS2008中是否有这些命名空间的等价物?我的应用程序是在 VS2008 中构建的,因此我正在尝试在 2008 年构建。

【问题讨论】:

标签: c# visual-studio-2010 visual-studio-2008 namespaces dicom


【解决方案1】:

使用 System.Numerics 命名空间的唯一方法是在 UIDHelper 类中将 GUID 转换为十进制数。它实质上将一个 16 字节的整数从 GUID 的字节创建为十进制数。

我不知道这个值有多重要。你有两个选择:

  1. 您可以用不使用BigInteger 类型但足以满足您的目的的类似代码替换此代码。

  2. 您可以自己实现BigInteger 类型。在 J# 类库中(参见 http://msdn.microsoft.com/en-us/magazine/cc163696.aspx)有多种实现方式,包括 .NET Framework 本身。

【讨论】:

  • 嗨,@Jeffrey 我的代码中有一个 UIDHelper。我不认为第一个选项是可行的,因为它可能不够高效(我猜,不确定!)。谢谢第二个链接,我去看看! :)
  • 我正在查看我的代码,我认为我不需要 UIDHelper,我想现在我也不需要 System.Numerics。但是当我构建我的解决方案时,我收到错误消息:系统缺少程序集引用,即使我的命名空间都存在。我猜这是因为代码使用的是 VS2010 命名空间,而我使用的是 2008。知道如何从这里开始吗?谢谢!
  • 您应该能够在解决方案资源管理器中删除对 System.Numerics 和 Microsoft.CSharp 的引用。我认为添加 Microsoft.CSharp 是为了支持 C# 4.0 中的新 dynamic 关键字。
【解决方案2】:

MSDN 表示 Microsoft.CSharp 命名空间可用于早期框架。确保您已添加对 System.Core.dll 和 System.Dynamic.dll 的引用。

System.Numerics Namespace 是 .net 框架 4.0 的新功能。查找等效项取决于您在该名称空间中使用的内容。我不确定BigIntegerComplex 结构是否有任何等价物...

【讨论】:

    【解决方案3】:

    System.Numerics 命名空间是在 .net 4.0 中添加的,在较低版本的 .net 中没有等效的命名空间。如果您可以访问该程序的源代码并愿意更改它,您可以尝试修改它以使用 IntX 库作为 BigInteger 的替代品(如果许可证是正确的)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-26
      • 1970-01-01
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多