我的命名空间的名称与.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。"模型",这门课还可以,但我不喜欢这样。我需要一个不需要改变很多代码的解决方案。
谢谢。
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);