我们必须在代码中找到一个非常讨厌的问题:
void Test()
{
string queryString = @"...";
MySqlDataAdapter adapter = new MySqlDataAdapter(queryString, Connection);
DataSet contacts = new DataSet();
adapter.Fill(contacts, "employees");
var contactList = new List<Contact>();
foreach (DataRow item in contacts.Tables["employees"].Rows)
{
var foo = new Contact
{
Id = item.Field<int>("ID"),
// ...
LastChanged = item.Field<>("ID");
};
}
return contactList;
}
请参阅第16行中的那些空角括号?那些当然是一个错误,应该已经填补,因为System.Data.DataRowExtensions.Field<T>
是一种通用的扩展方法,其中类型是不可推断的。
由于某些原因,Visual Studio(2015,Update 3)在该行中未显示错误。然而,在编译时,我遇到了这个可怕的无用错误:
CS7038: Failed to emit module '<assembly name here>'.
...没有提及失败的文件或行。填写类型的课程修复了这个,但它似乎更像是编译器错误?我可以在VS的两个不同的计算机/安装上重现这个。
我是否会忽视某些内容,或者这是我应该报告的错误?