.net CS0029:无法隐式转换类型';System.DateTime';至';变量

.net CS0029:无法隐式转换类型';System.DateTime';至';变量,.net,dll,reference,.net-assembly,.net-framework-version,.net,Dll,Reference,.net Assembly,.net Framework Version,我的web应用程序工作得很好。这没有问题 突然,我需要在我的项目中添加System.Web.Helpers.ddl的引用。在我的项目中添加这个之后,我得到了一个错误 无法在此行上将类型“System.DateTime”隐式转换为“var”,var date=DateTime.Now.AddYears(i) 在此之前,它工作得很好,我没有对代码做任何更改 protected void Bind_Year() { try { DataTable dt = new Da

我的web应用程序工作得很好。这没有问题

突然,我需要在我的项目中添加System.Web.Helpers.ddl的引用。在我的项目中添加这个之后,我得到了一个错误

无法在此行上将类型“System.DateTime”隐式转换为“var”,var date=DateTime.Now.AddYears(i)

在此之前,它工作得很好,我没有对代码做任何更改

protected void Bind_Year()
{
    try
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("Year", typeof(int));
        for (int i = -2; i < 4; i++)
        {
            var date = DateTime.Now.AddYears(i);
            var year = date.Year;
            dt.Rows.Add(year);

        }
        DropDownList3.DataSource = dt;
        DropDownList3.DataBind();

    }
    catch (Exception ex)
    {
        WebMsgBox.Show(ex.Message);
    }

}
protected void Bind_Year()
{
尝试
{
DataTable dt=新的DataTable();
添加(“年”,类型(int));
for(int i=-2;i<4;i++)
{
var date=DateTime.Now.AddYears(i);
var年=日期年;
dt.行。加(年);
}
DropDownList3.DataSource=dt;
DropDownList3.DataBind();
}
捕获(例外情况除外)
{
WebMsgBox.Show(例如Message);
}
}

这里的问题是您在某处得到了一个名为
var
的类型

我自己也不认为这是可能的,所以我试了一下:

果然,它给了我这个编译器错误:

无法将类型“System.DateTime”隐式转换为“UserQuery.var”

显然,在项目中或引用的程序集中必须有这样一个类

将类型或成员命名为与内置关键字相同的名称是个坏主意


要解决此问题,您应该将您的类型重命名为其他类型。除非你正在建模的世界有一个叫做“var”的概念,否则我想说一个更具描述性的名称可能更好,但如果你真的想要这个名称,考虑一下只需使V成为代码> var var /代码>,编译器就应该停止抱怨。

这是.NET版本还是C版本?现在,.NET框架是4.0,您可能定义了一个类型,命名为“代码> var >代码>?这是真正的代码,而不是重新编码更多的代码,即,您复制并粘贴在这里,您没有更改它?我很确定您在某个地方有一个名为
var
的类型,请尝试将光标放在该类型上,然后在Visual Studio中点击F12,看看会发生什么。先生,很抱歉,我没有添加此类,甚至我也不知道它是从哪里自动进入我的APP_Code文件夹的。我自己也不认为这是可能的:这是可能的,因为var不是一个保留字。任何上下文关键字都可以用作标识符,而保留关键字不能用作标识符。和+1 :)
void Main()
{
    var x = DateTime.Today;
}
public class var
{
}