我遇到了这个问题,但不知道如何修复它。我不喜欢更改名称空间。这是我的代码:
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”,这个类就可以,但我不喜欢这种方式。我需要一个针对这种情况的解决方案而不需要更改许多代码。
感谢。
答案 0 :(得分:3)
System
中的using System.Globalization
指的是你的命名空间,因此它应该是另一个编译错误。
如果您真的喜欢命名空间中的using
(我个人不喜欢这种做法),您应该使用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; }
}
}
答案 1 :(得分:1)
将用品放在外面:
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; }
}
}
答案 2 :(得分:1)
为什么在命名空间块中有使用语句?如果你将它们移到外面,我相信它应该很好。
答案 3 :(得分:0)
尝试:
global::System.DateTime dateTime;
或以其他方式:
using SystemAlias = System;
然后:
SystemAlias.DateTime dateTime;
BTW:在命名空间声明之前放置你的使用。
答案 4 :(得分:0)
尝试
using NETDateTime = System.DateTime;
然后在你的代码中:
TimeFrom = NETDateTime.Now.ToString(CultureInfo.InvariantCulture);