最後に要求するインターフェイスに転送されるデフォルトの行列を保持する静的クラス「デフォルト」がありますdouble[][]
。ここまでは、単に s を返すこのクラスに静的プロパティを配置しましたdouble[][]
。
これを当社のコーディング標準に準拠させるには、コードは FxCop の規則CA1819に準拠する必要があります。これにより、私が行ったように、プロパティからギザギザの配列を返すことはできなくなります。また、配列の代わりにIList
orを返します (ここでIEnumerable
説明したように)。
「まあまあ」と思ったので、返すプロパティを実装しましたIList<IList<double>>
(ネストされた型もクールではありませんが)。しかし、私が言ったように、私が扱う必要があるインターフェースは最終的に行列を求めます..各リストを明示的に変換せずにdouble[][]
、このリストのリストを配列の配列に取得する方法がわかりません。もちろん、できますが、特にこれらのマトリックスにアクセスすることさえしないため、非常に多くのオーバーヘッドが発生します。それらをインターフェイスに渡すだけです。
(追記: インターフェースのせいなのはわかっていますが、現時点では変更できません。)
編集: CA1006 に違反しているため、 dones を使用しても役に立たILists<IList<double>>
ないことがわかりました。FxCop をシャットダウンするために私がとった簡単な解決策は、プロパティを内部にすることでした。とにかく、より良い解決策を以下に示します。別の方法として、インデックス付きプロパティの使用を検討することもできますが、これは C# では少し面倒です。