を受け取るメソッドのテストを作成するために、いくつかの厳密に型指定された DataRows の軽量バージョンを作成しようとしていますIEnumerable<T> where T : DataRow
。
DataRow
自動生成された厳密に型指定された DataSet.Designer.cs のように、から継承するが追加のプロパティを持つクラスを作成したいと考えています。私は彼らのコードを機能させることができず、実際にどのように機能するのか理解できません:
// from AnimalDataSet.Designer.cs:
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
public AnimalRow AddAnimalRow(
string Name,
int Species_ID) {
AnimalRow rowAnimalRow = ((AnimalRow)(this.NewRow()));
object[] columnValuesArray = new object[] {
null,
Name,
Species_ID};
rowAnimalRow.ItemArray = columnValuesArray;
this.Rows.Add(rowAnimalRow);
return rowAnimalRow;
}
これを模倣して実行しようとするたびに、InvalidCastException (System.DataRow 型のオブジェクトを AnimalRow 型にキャストできません) が発生します。私が期待していたように。
では、彼らのコードをより特別なものにしている理由は何でしょうか?