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'が見つかりませんでした。」このクラスは、.NETFrameworkと同じ名前空間Systemに配置されているためです。「ParlayRMS.Models.System」を「ParlayRMS.Models」に変更すると、このクラスは問題ありませんが、この方法は好きではありません。多くのコードを変更せずに、この場合の解決策が必要です。

ありがとう。

4

5 に答える 5

3

Systeminは名前空間を参照しているため、using System.Globalization別のコンパイル エラーになるはずです。

名前空間内の s が本当に好きな場合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; }
    }
}
于 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

試す

using NETDateTime = System.DateTime;

そしてあなたのコードで:

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

試す:

global::System.DateTime dateTime;

または別の方法で:

using SystemAlias = System;

それから:

SystemAlias.DateTime dateTime;

ところで:名前空間宣言の前にusingを入れてください。

于 2013-01-10T08:35:19.943 に答える