C#error1:当前上下文中不存在名称“DateTimeStyles”。 error2:找不到类型或命名空间名称“CultureInfo”

时间:2009-12-11 12:10:54

标签: c# .net

您好我搜索了Google,但无法从这些错误中恢复过来:

The name 'DateTimeStyles' does not exist in the current context

...

The type or namespace name 'CultureInfo' could not be found (are you missing a using directive or an assembly reference?)

..如果我错过了什么,请你帮帮我..这是我的代码..

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
using System.Security.Permissions;
using System.Threading;

namespace ConsoleApplication21
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] formats = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", 
                   "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", 
                   "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", 
                   "M/d/yyyy h:mm", "M/d/yyyy h:mm", 
                   "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"};
            string[] dateStrings = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", 
                        "5/1/2009 6:32:00", "05/01/2009 06:32", 
                        "05/01/2009 06:32:00 PM", "05/01/2009 06:32:00"};
            DateTime dateValue;

            foreach (string dateString in dateStrings)
            {
                if (DateTime.TryParseExact(dateString, formats,
                                           new CultureInfo("en-US"),
                                           DateTimeStyles.None,
                                           out dateValue))
                    Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
                else
                    Console.WriteLine("Unable to convert '{0}' to a date.", dateString);
            }
        }
    }
}

我正在使用visual studio 2005。

3 个答案:

答案 0 :(得分:3)

看起来你的using语句没问题。必须缺少参考。错误消息中提到的两种类型都位于mscorlib.dll

我相信C#编译器总是引用mscorlib,除非你要求它使用/nostdlib命令行选项。

你如何编译你的程序?如果使用Visual Studio,请检查项目的设置以获取“不使用stdlib”或类似的选项(另一个答案说明了在哪里可以找到该选项)。如果使用命令行编译器,请确保未传递/nostdlib选项。

答案 1 :(得分:2)

奇怪。检查您的项目是否引用了mscorlib.dll

右键单击项目,选择Properties,选择Build,然后单击Advanced ...;确保已设置“不引用mscorlib.dll”选项。

答案 2 :(得分:1)

嗯。 DataTimeStylesCultureInfo都位于System.Globalization命名空间中,因此

using System.Globalization;

应该足够了。您使用的是什么版本的.NET?