配列クラス (System.Int32)
Namespace: FVILAssembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)
Syntax
C# |
---|
[SerializableAttribute] public class INT_ARRAY : CFviObject, ICloneable, ISerializable, IXmlSerializable, IEnumerable<int>, IFviCopyable, [T:FVIL.IFviPtrIndexer<int>] |
Visual Basic |
---|
<SerializableAttribute> Public Class INT_ARRAY Inherits CFviObject Implements ICloneable, ISerializable, IXmlSerializable, IEnumerable(Of Integer), IFviCopyable, [T:FVIL.IFviPtrIndexer<int>] |
Remarks
アンマネージ環境のヒープに System.Int32 の配列を確保するクラスです。
確保した領域のアドレスは、Address に保管され、
Clear()()()() が呼ばれた時や
このインスタンスが解放される時に自動的に解放されます。
このクラスは、.NET 環境とネイティブ環境の間で大量の画像処理データの受け渡しを行うことを目的としています。
通常、.NET 環境の固定長配列をネイティブ環境に受け渡す場合は マーシャリングが必要になり、
データのコピーが少なくとも1回は発生します。
ネイティブ環境の処理結果を .NET 環境に反映する場合(In,Out 属性の引数の場合)は、計2回発生します。
このクラスを使用するとマーシャリングの必要が無い為、データコピーのコスト削減が行えます。
領域の確保と解放について:
領域の確保と解放は FVCL を介して FIE ライブラリを使用しています。 外部で確保した領域を設定することもできますが、 アロケータを一致させる必要がありますのでご注意ください。(下表参照) 自動的に解放したくない場合は、 IsAttach を true に設定することで回避できます。
その他の操作:
操作 | メソッド | 概要 |
---|---|---|
領域設定 | SetBuffer(INT_PTR, Int32, Boolean) | 外部で確保した領域を設定する場合に使用します。 |
アタッチ | Attach(Object) | 同一型のインスタンスが保有する領域にアタッチします。 |
移動 | MoveFrom(Object) | 同一型のインスタンスが保有する領域をこのインスタンスに移動します。 |
複製 | CopyFrom(Object) | 同一型のインスタンスの内容を複製します。 |
初期値と範囲:
プロパティ | 初期値 | 範囲 | 説明 |
---|---|---|---|
Item[([( Int32])]) | (なし) | System.Int32 | 配列の要素の取得または設定を行います。 |
Address | IntPtr.Zero | IntPtr.Zero または 有効なアドレス | 配列の先頭アドレスの取得を行います。 |
Count | 0 | 0,1~ | 配列の要素数の取得を行います。 |
IsAttach | false | false/true | アタッチ状態の取得または設定を行います。 |
SizeOfItem | sizeof(INT) | sizeof(INT) | 配列要素1つ分のサイズ(byte)を取得します。 |
Size | 0 | SizeOfItem × Count | 配列全体のサイズ(byte)を取得します。 |
データ変換 (1):
整数(または実数)を保有する他の機能からデータ変換するには、
CopyFrom(Object) メソッドを使用してください。
単純に代入していますので、型のレンジを超える値を代入した場合は桁落ちや溢れが発生します。
対応しているクラスは以下の通りです。
項目 | 説明 |
---|---|
Char の IEnumerable |
全ての要素をキャストして複製します。 |
Byte の IEnumerable |
全ての要素をキャストして複製します。 |
Int16 の IEnumerable |
全ての要素をキャストして複製します。 |
UInt16 の IEnumerable |
全ての要素をキャストして複製します。 |
Int32 の IEnumerable |
全ての要素をキャストして複製します。 |
UInt32 の IEnumerable |
全ての要素をキャストして複製します。 |
Single の IEnumerable |
全ての要素をキャストして複製します。 |
Double の IEnumerable |
全ての要素をキャストして複製します。 |
データ変換 (2): 他の機能へのデータ変換
本クラスから他の機能へデータ変換するには、下記のメソッドを使用してください。
項目 | メソッド | 説明 |
---|---|---|
コレクション | ToList()()()() | 全要素をコレクションに格納して返します。 |
固定長配列 | ToArray()()()() | 全要素を固定長配列に格納して返します。 |