Ido*_*nts 0 c# var type-inference
在以下代码中,row被视为object是否DataGridViewRow.
foreach (var row in datagridview.Rows)
{
row.Visible = false //<- error because no Visible property
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?不应该排DataGridViewRow?
你要调用datagridview.Rows返回类型的实例DataGridViewRowCollection,它实现了非泛型 ICollection,IEnumerable和IList接口,因此,当你做"的foreach"它将返回类型的实例System.Object.
在语句中使用隐式类型变量时,变量var row的类型row现在将变为System.Object.
要解决此问题,您可以row在foreach语句中明确指定类型:
foreach (DataGridViewRow row in datagridview.Rows)
{
row.Visible = false;
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为foreach实现以静默方式执行从Enumerator.Currentto类型 返回的每个对象的显式转换(强制转换)DataGridViewRow,您可以在这里阅读.
| 归档时间: |
|
| 查看次数: |
325 次 |
| 最近记录: |