配列クラス (System.Byte)

Namespace: FVIL
Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)

Syntax

C#
[SerializableAttribute]
public class UCHAR_ARRAY : CFviObject, 
	ICloneable, ISerializable, IXmlSerializable, IEnumerable<byte>, IFviCopyable, 
	[T:FVIL.IFviPtrIndexer<unsigned char>]
Visual Basic
<SerializableAttribute>
Public Class UCHAR_ARRAY
	Inherits CFviObject
	Implements ICloneable, ISerializable, IXmlSerializable, IEnumerable(Of Byte), 
	IFviCopyable, [T:FVIL.IFviPtrIndexer<unsigned char>]

Remarks

アンマネージ環境のヒープに System.Byte の配列を確保するクラスです。
確保した領域のアドレスは、Address に保管され、 Clear()()()() が呼ばれた時や このインスタンスが解放される時に自動的に解放されます。

このクラスは、.NET 環境とネイティブ環境の間で大量の画像処理データの受け渡しを行うことを目的としています。
通常、.NET 環境の固定長配列をネイティブ環境に受け渡す場合は マーシャリングが必要になり、 データのコピーが少なくとも1回は発生します。 ネイティブ環境の処理結果を .NET 環境に反映する場合(In,Out 属性の引数の場合)は、計2回発生します。 このクラスを使用するとマーシャリングの必要が無い為、データコピーのコスト削減が行えます。


領域の確保と解放について:

領域の確保と解放は FVCL を介して FIE ライブラリを使用しています。 外部で確保した領域を設定することもできますが、 アロケータを一致させる必要がありますのでご注意ください。(下表参照) 自動的に解放したくない場合は、 IsAttachtrue に設定することで回避できます。


その他の操作:
操作メソッド概要
領域設定SetBuffer(UCHAR_PTR, Int32, Boolean)外部で確保した領域を設定する場合に使用します。
アタッチAttach(Object)同一型のインスタンスが保有する領域にアタッチします。
移動MoveFrom(Object)同一型のインスタンスが保有する領域をこのインスタンスに移動します。
複製CopyFrom(Object)同一型のインスタンスの内容を複製します。


初期値と範囲:
プロパティ初期値範囲説明
Item[([( Int32])]) (なし)System.Byte配列の要素の取得または設定を行います。
AddressIntPtr.ZeroIntPtr.Zero または 有効なアドレス配列の先頭アドレスの取得を行います。
Count00,1~配列の要素数の取得を行います。
IsAttachfalsefalse/trueアタッチ状態の取得または設定を行います。
SizeOfItemsizeof(UCHAR)sizeof(UCHAR)配列要素1つ分のサイズ(byte)を取得します。
Size0SizeOfItem × Count配列全体のサイズ(byte)を取得します。

データ変換 (1):

整数(または実数)を保有する他の機能からデータ変換するには、 CopyFrom(Object) メソッドを使用してください。
単純に代入していますので、型のレンジを超える値を代入した場合は桁落ちや溢れが発生します。
対応しているクラスは以下の通りです。

項目説明
Char の IEnumerable 全ての要素をキャストして複製します。
Byte の IEnumerable 全ての要素をキャストして複製します。
Int16 の IEnumerable 全ての要素をキャストして複製します。
UInt16 の IEnumerable 全ての要素をキャストして複製します。
Int32 の IEnumerable 全ての要素をキャストして複製します。
UInt32 の IEnumerable 全ての要素をキャストして複製します。
Single の IEnumerable 全ての要素をキャストして複製します。
Double の IEnumerable 全ての要素をキャストして複製します。

データ変換 (2): 他の機能へのデータ変換

本クラスから他の機能へデータ変換するには、下記のメソッドを使用してください。

項目メソッド説明
コレクションToList()()()() 全要素をコレクションに格納して返します。
固定長配列ToArray()()()() 全要素を固定長配列に格納して返します。

Inheritance Hierarchy

System..::..Object
FVIL..::..CFviObject
FVIL..::..UCHAR_ARRAY

See Also