现有两个结构List<DataGridViewRow> selectedRows = (from row in gridView1.Rows.cast<DataGridViewRow>()
where Convert.ToBoolean(gridView1.GetRowCellValue[0].Value) == true
select row).ToList();
if (MessageBox.Show(string.Format("Do you want to delete {0} rows?", selectedRows.Count), "Confirmation", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
foreach (DataGridViewRow row in selectedRows)
{
...
}
}
和S1
,还有两个特征S2<T>
和T1
。我想为T2<T>
的所有T2<T>
的{{1}}实现S1
。
我以为我可以写:
T
但是出现以下错误(playground):
错误[E0277]:在编译时无法得知类型
AsRef<S2<T1>>
的值的大小
当然,目前尚不清楚类型的大小!我想为实现T1的所有类型创建通用实现。所以我尝试了以下方法:
struct S1;
struct S2<T>{t:T}
trait T1 {}
trait T2<T> {}
impl <T: AsRef<S2<T1>>> T2<T> for S1 {}
但这也不编译,但出现以下错误:
error [E0207]:类型参数
(dyn T1 + 'static)
不受impl特性,自身类型或谓词的约束
上面的代码有什么问题,如何解决?