3

因此,作为实用程序的练习,我自己承担了将我们可怜的旧 vb .net 1.1 应用程序之一转换为 C# .net 4.0 的任务。

我使用Telerik 代码转换作为起点,最终出现约 150 个错误(考虑到其超过 20k 的代码,这还不算太糟糕,而且我很少能使用生产源代码让它在没有错误的情况下运行)其中许多处理时间/日期在 vb 与 c# 中。

我的问题是,您将如何在 VB 中表示以下语句

If oStruct.AH_DATE <> #1/1/1900# Then

在 C# 中?转换器给了我

            if (oStruct.AH_DATE != 1/1/1900 12:00:00 AM) {

这当然是不正确的,但我似乎无法弄清楚如何使它正确。

4

3 回答 3

3
 if (oStruct.AH_DATE != new DateTime(1900, 1, 1){
于 2012-09-27T01:52:48.267 回答
2

你可以试试这个构造:

if ( DateTime.Compare(oStruct.AH_DATE, new DateTime(1900, 1, 1)) == 0 )
{
// your code here
}

这是如何在 .NET 中比较 DateTimes 的参考 - DateTime.Compare 方法

注意:比较两个日期(如整数)可能会导致错误的结果。因为,.NET 中的日期时间结构有其特定的属性。在比较两个日期时,我总是会尽量留心,并且总是选择DateTime.Compare更安全的一面。

于 2012-09-27T01:58:55.387 回答
1

这应该有效:

if (oStruct.AH_DATE != DateTime.Parse("1/1/1900"))
于 2012-09-27T16:01:44.240 回答