VB代码到C# - 命名空间Microsoft.VisualBasic

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB代码到C# - 命名空间Microsoft.VisualBasic相关的知识,希望对你有一定的参考价值。

我正在将VB代码转换为C#。以下是守则。

CrByMonthCr = Val(DateDiff("m", StartDate, DateSerial(Year(EndDate), Month(EndDate), 1)) + 1) * MonthCr

在C#代码中我导入了命名空间--using Microsoft.VisualBasic。我只能设法解决DateDiff功能。 ValDateSerial正在给出编译器错误。

CrByMonthCr = Val(DateAndTime.DateDiff("m", StartDate, DateSerial(Year(EndDate), Month(EndDate), 1)) + 1) * MonthCr

有没有人知道为什么尽管导入VisualBasic的命名空间它会给出错误?怎么解决这个?

DateSerial在当前上下文中不存在

答案

DateSerial作为静态方法存在于Microsoft.VisualBasic.DateAndTime类中,因此要继续使用它,您需要DateAndTime.DateSerial(Year(EndDate), Month(EndDate), 1)。 但你可以简单地用new DateTime(EndDate.Year, EndDate.Month, 1)替换它

另一答案

如Zohar Peled提到的DateSerialDateAndTime的成员。 ValConversion的成员。所以完整的代码(与using Microsoft.VisualBasic;)是

CrByMonthCr = Conversion.Val(DateAndTime.DateDiff("m", StartDate, DateAndTime.DateSerial(DateAndTime.Year(EndDate), DateAndTime.Month(EndDate), 1)) + 1) * MonthCr;

以上是关于VB代码到C# - 命名空间Microsoft.VisualBasic的主要内容,如果未能解决你的问题,请参考以下文章

将表单放入命名空间会导致MissingManifestResourceException

vb.net数据库操作

带有数据库的 vb.net

C++--- namespace命名空间

在C ++命名空间中包含旧库

C++std命名空间和头文件详解