このコードで:
for (int row = 0; row < PlatypusGridRowCount; row++) {
// Save each row as an array
var currentRowContents = new string[ColumnCount];
// Add each column to the currentColumn
for (int col = 0; col < ColumnCount; col++) {
currentRowContents[col] = this.GetPlatypusValForCell(row, col);
}
// Add the row to the DGV
dataGridViewPlatypus.Rows.Add(currentRowContents);
Resharperは最後の行について次のように述べています。「string[]からobject[]への共変配列変換は、書き込み操作で実行時例外を引き起こす可能性があります」
そこで、コードが次のようになるように、必要な変更を加えます("ローカル変数のタイプをobject[] ..."に変更します)。
...
object[] currentRowContents = new string[ColumnCount];
...
次に、Resharper検査を再実行すると、Resharperからまったく同じ正確な警告メッセージが再度表示されます(「string[]からobject[]への共変配列変換により、書き込み操作で実行時例外が発生する可能性があります」)が、今回は行:
object[] currentRowContents = new string[ColumnCount];
次に、その処理を再度実行します("ローカル変数の型をstring[] ...に変更します)
...したがって、これによりその行が次のように変更されます。
string[] currentRowContents = new string[PLATYPUS_COL_COUNT];
...(IOW、最初のバージョンに戻しますが、暗黙的な文字列配列宣言ではなく明示的な文字列配列宣言を使用します); しかし、その後ReSharperを実行すると、string[]をvarなどに変更する必要があります。