1

我遇到了这个问题,但不知道如何解决。我不喜欢更改命名空间。这是我的代码:

namespace ParlayRMS.Models.System
{
    using System;
    using System.Globalization;

    public class MaintenanceInfo
    {
        public MaintenanceInfo()
        {
            IsDownTime = false;
            TimeFrom = DateTime.Now.ToString(CultureInfo.InvariantCulture);
            TimeTo = DateTime.Now.ToString(CultureInfo.InvariantCulture);
        }
        public bool IsDownTime { get; set; }
        public string TimeFrom { get; set; }
        public string TimeTo { get; set; }
    }
}

此类导致错误:“找不到类型或命名空间 'DateTime'。” 因为这个类被放在命名空间 System 中,与 .NET Framework 相同。如果我将“ParlayRMS.Models.System”更改为“ParlayRMS.Models”,这个类就可以了,但我不喜欢这种方式。对于这种情况,我需要一个解决方案,而无需更改许多代码。

谢谢。

4

5 回答 5

3

Systeminusing System.Globalization指的是你的命名空间,所以它应该是另一个编译错误。

如果你真的喜欢using命名空间中的 s (我个人不喜欢这种做法),你应该使用global::extern 别名(我认为这就是它的名字)

namespace ParlayRMS.Models.System
{
    using global::System;
    using global::System.Globalization;

    public class MaintenanceInfo
    {
        public MaintenanceInfo()
        {
            IsDownTime = false;
            TimeFrom = DateTime.Now.ToString(CultureInfo.InvariantCulture);
            TimeTo = DateTime.Now.ToString(CultureInfo.InvariantCulture);
        }
        public bool IsDownTime { get; set; }
        public string TimeFrom { get; set; }
        public string TimeTo { get; set; }
    }
}
于 2013-01-10T08:37:52.990 回答
1

将 usings 放在外面:

using System;
using System.Globalization;

namespace ParlayRMS.Models.System
{

    public class MaintenanceInfo
    {
        public MaintenanceInfo()
        {
            IsDownTime = false;
            TimeFrom = DateTime.Now.ToString(CultureInfo.InvariantCulture);
            TimeTo = DateTime.Now.ToString(CultureInfo.InvariantCulture);
        }
        public bool IsDownTime { get; set; }
        public string TimeFrom { get; set; }
        public string TimeTo { get; set; }
    }
}
于 2013-01-10T08:31:42.493 回答
1

为什么在命名空间块中有 using 语句?如果你把它们移到外面,我相信它应该会很好。

于 2013-01-10T08:33:14.027 回答
0

尝试:

global::System.DateTime dateTime;

或以另一种方式:

using SystemAlias = System;

然后:

SystemAlias.DateTime dateTime;

顺便说一句:将您的 usings 放在命名空间声明之前。

于 2013-01-10T08:35:19.943 回答
0

尝试

using NETDateTime = System.DateTime;

然后在您的代码中:

TimeFrom = NETDateTime.Now.ToString(CultureInfo.InvariantCulture);
于 2013-01-10T08:40:20.633 回答