我的网络应用程序运行正常。这没有问题。
突然间,我需要在项目中添加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);
}
}
答案 0 :(得分:1)
这里的问题是你有一个名为var
的地方。
我自己并不认为这是可能的,所以我在LINQPad尝试了它:
void Main()
{
var x = DateTime.Today;
}
public class var
{
}
果然,它给了我这个编译错误:
无法隐式转换类型&#39; System.DateTime&#39;到UserQuery.var&#39;
所以显然你必须在你的项目或引用的程序集中有这样的类。
与内置关键字相同的命名类型或成员是一个坏主意。
要解决此问题,您应该将类型重命名为其他内容。除非您建模的世界有一个名为&#34; var&#34;的概念,否则我会说更具描述性的名称可能更好,但如果你真的想要这个名字,可以考虑只改用V的大写字母。使它Var
,编译器应该停止抱怨。