我正在嘗試創建泛型方法。我希望調用者能夠定義兩種不同的類型。創建泛型類型實例的方法
private TableRow AddRowHelper<TROW, TCELL>(params string[] content) where TROW : TableRow where TCELL : TableCell
{
TableRow row = new TROW();
foreach (var text in content)
{
TableCell cell = new TCELL();
cell.Text = text;
row.Cells.Add(cell);
}
productsTable.Rows.Add(row);
return row;
}
上面的代碼給了我一個錯誤。因爲它沒有新的()約束」
錯誤4無法創建變量類型「TROW」的一個實例是否可以同時指定
new
和基本型的約束?當我已經指定爲什麼我需要一個新的約束,該類型必須從TableRow
,它總是有一個new
運營商獲得。
想象一下像公共類ChildOfTrow類型:TROW {private ChildOfTrow(){}} – 2014-10-27 22:02:37
你是什麼意思'TableRow總是有'new'運算符'? – haim770 2014-10-27 22:02:46
是的,*可以指定新的和基本類型的約束:'where TROW:TableRow,new()'。 – haim770 2014-10-27 22:05:54