【发布时间】:2018-08-22 09:46:13
【问题描述】:
我正在将 VB 代码转换为 C#。以下是代码。
CrByMonthCr = Val(DateDiff("m", StartDate, DateSerial(Year(EndDate), Month(EndDate), 1)) + 1) * MonthCr
在 C# 代码中,我导入了命名空间 - using Microsoft.VisualBasic。
我只设法解决了DateDiff 功能。 Val & DateSerial 给出编译器错误。
CrByMonthCr = Val(DateAndTime.DateDiff("m", StartDate, DateSerial(Year(EndDate), Month(EndDate), 1)) + 1) * MonthCr
有谁知道为什么尽管导入了 VisualBasic 的命名空间,但它会给出错误?如何解决?
DateSerial 在当前上下文中不存在
【问题讨论】:
-
它给出了什么错误?
-
错误 - DateSerial 在当前上下文中不存在
-
很多
Microsoft.VisualBasic功能(肯定是.NET 版本1 的东西,在所有My东西被添加之前)被有效地投入以最小化VB 6 和VB 之间的转换。网。继续使用该功能的唯一原因是,如果您试图保持与某些 pre-.NET VB 代码的 bug-for-bug 兼容。如果没有,我建议现在是时候探索每个函数的作用,然后确定使用普通的非 VB 框架类实现该目标的标准方法。 -
我必须同意@Damien_The_Unbeliever。您应该做的第一件事是修改您的 VB 代码以删除所有 VB 特定的代码。一旦都是标准的 .NET 代码,那么将其转换为 C# 将很简单。
-
这是 2 个月的误导 - 请参阅有关该主题的帖子 - stackoverflow.com/questions/4638993/…