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
功能。 Val
和DateSerial
正在给出编译器错误。
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提到的DateSerial
是DateAndTime
的成员。 Val
是Conversion
的成员。所以完整的代码(与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的主要内容,如果未能解决你的问题,请参考以下文章