C# 无法在声明局部变量DateTime之前使用它?

C# 无法在声明局部变量DateTime之前使用它?,c#,datetime,compiler-errors,C#,Datetime,Compiler Errors,我想在Main方法的控制台应用程序中获取当前日期时间,但我得到编译器错误“不能在声明局部变量DateTime之前使用它”。下面是代码的一部分 static void Main(string[] args) { StringBuilder RequestString = new StringBuilder(); string MachineID = "17"; DateTime CT = DateTime.Now; string DateTi

我想在Main方法的控制台应用程序中获取当前日期时间,但我得到编译器错误“不能在声明局部变量DateTime之前使用它”。下面是代码的一部分

static void Main(string[] args)
{
       StringBuilder RequestString = new StringBuilder();
       string MachineID = "17";
       DateTime CT = DateTime.Now;
       string DateTime = CT.ToShortDateString();
       RequestString.Append(MachineID);
       RequestString.Append("|");
       RequestString.Append(DateTime);
       RequestString.Append("|");
}
更改:

string DateTime = CT.ToShortDateString();
致:

不能将
DateTime
用作变量名

编辑: 因为错误是因为变量
DateTime
正在隐藏
DateTime
类型,并且编译器认为OP现在正在调用字符串变量
DateTime
的属性

string DateTime = CT.ToShortDateString();
致:

不能将
DateTime
用作变量名

编辑: as错误是因为变量
DateTime
正在隐藏
DateTime
类型,并且编译器认为OP现在正在调用字符串变量
DateTime
上的属性
,这一行是错误的

string DateTime = CT.ToShortDateString();
您没有给它一个局部变量名,如:

string ctShortDate =  CT.ToShortDateString();
这条线错了

string DateTime = CT.ToShortDateString();
您没有给它一个局部变量名,如:

string ctShortDate =  CT.ToShortDateString();

为什么使用DateTime作为变量名? 我认为这不是一个好的做法

DateTime CT = DateTime.Now;
string currentdate = CT.ToShortDateString();

为什么使用DateTime作为变量名? 我认为这不是一个好的做法

DateTime CT = DateTime.Now;
string currentdate = CT.ToShortDateString();

您不能在使用类
DateTime
的同一行中声明
DateTime
,该类将隐藏您选择的变量名

您可以在使用的任何地方将变量名更改为dateTime(例如),而不是编译和运行。请尝试使用以下代码:

static void Main(string[] args)
{
    StringBuilder RequestString = new StringBuilder();
    string MachineID = "17";
    DateTime CT = DateTime.Now;
    string dateTime = CT.ToShortDateString();
    RequestString.Append(MachineID);
    RequestString.Append("|");
    RequestString.Append(dateTime);
    RequestString.Append("|");
}

您不能在使用类
DateTime
的同一行中声明
DateTime
,该类将隐藏您选择的变量名

您可以在使用的任何地方将变量名更改为dateTime(例如),而不是编译和运行。请尝试使用以下代码:

static void Main(string[] args)
{
    StringBuilder RequestString = new StringBuilder();
    string MachineID = "17";
    DateTime CT = DateTime.Now;
    string dateTime = CT.ToShortDateString();
    RequestString.Append(MachineID);
    RequestString.Append("|");
    RequestString.Append(dateTime);
    RequestString.Append("|");
}
Nit:
DateTime
是一个有效的变量名,即使是不明智的。这里的问题是变量在表达式
DateTime.Now
中隐藏了类型(但是使用完全限定的类型名也可以,即使是不明智的)。Nit:
DateTime
是有效的变量名,即使是不明智的。这里的问题是,变量在表达式
DateTime.Now
中隐藏了类型(但是使用完全限定的类型名也可以,即使是不明智的)。