我的命名空间的名称与.net框架命名空间相同

本文关键字:命名空间 框架 net 我的 | 更新日期: 2023-09-27 17:51:08

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

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框架相同。如果我改变parlayrms。models。系统"到"ParlayRMS。"模型",这门课还可以,但我不喜欢这样。我需要一个不需要改变很多代码的解决方案。

谢谢。

我的命名空间的名称与.net框架命名空间相同

using System.Globalization中的System是指您的名称空间,因此它应该是另一个编译错误。

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

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; }
    }
}

把用法放在外面:

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; }
    }
}

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

尝试:

global::System.DateTime dateTime;

或另一种方式:

using SystemAlias = System;

:

SystemAlias.DateTime dateTime;

Try

using NETDateTime = System.DateTime;

然后在你的代码中:

TimeFrom = NETDateTime.Now.ToString(CultureInfo.InvariantCulture);