short []をオブジェクト[]に変換する必要があります。その理由は、別のプロパティに応じて、同じメンバ変数にshort []またはchar []を格納する必要があるからです。私が使用したクラスはC++/CLIで書かれており、C#から使用されています。 C++/CLIのプロパティがC#short []をオブジェクト[]に変換する
あるproperty cli::array<Object^>^ Data {
cli::array<Object^>^ get();
void set(cli::array<Object^>^ d);
}
誰もが短い[]またはchar [] []をオブジェクトに変換する方法を知っていますか?または、基本データ型としてcli::array<Object^>^
を使用しない方がよい解決策がありますか?
更新:は、私はこれらの項目のすべてを歩くとオブジェクトまたはLINQのメソッドshortArr.Cast<object>().ToArray()
を使用するように変換することができ知っています。しかし、よりパフォーマンスの高いソリューションを提供したいと思います。このプロパティに別の基本データ型を使用する方法がありますか?
"同じメンバー変数内のshort []またはchar []、別のプロパティに応じて" - なぜですか?これはX/Y問題のように聞こえる。 C#のプロパティはフリーであり、C#は '[StructLayout]'で 'union'のような構造体もサポートしています。 – Dai
"または、' cli :: array
変換はありません。配列の内容は物理的にメモリが異なります。これは要素あたり4バイトまたは8バイトからビット数に応じて2または1に崩壊します。したがって、あなたは*コピーする必要があります。パフォーマンスが重要な場合、ボックス化された値の配列は、フィーチャーリストには含まれません。 –