ExtValコンストラクタ(.NET連携)

 

説明

ExtValオブジェクトを初期化します。

 

valueに設定できる値は、StringNumberDate

 

呼出形式

var val = new ExtVal( [ value, type [, libraryName ] ] )

 

戻り値

ExtValオブジェクト

 

引数

value

オブジェクトの値を指定します。

例えば、typeExtVal.Int32を指定する場合は、この引数には整数を指定します。

有効なデータ型は、StringNumberDateByteArrayです。

指定した値はValueプロパティに設定されます。

 

 

integer type

.NETのデータ型を指定します。

指定できる値についてはTypeプロパティを参照してください。

指定した値はTypeプロパティに設定されます。

 

 

String libraryName

typeExtVal.Enumeを指定する場合に、.NET列挙体が定義されているライブラリを指定します。

それ以外は、省略するかnullを指定してください。

指定した値はLibraryプロパティに設定されます。

 

例外

CRS-16

コンストラクタ引数が不正です

 

CRS-407

現在のセキュリティレベルではクラス 'ExtVal'を利用できません

 

使用例

var val = new ExtVal(0x41, ExtVal.Char);
var ret = ExternalObject.InvokeStatic("System.Convert", null, "ToString", val);
print(ret, "\n");
 
var extobj = new ExternalObject("SampleNS.SampleClass", "sample.dll");
extobj.SetProperty("SampleProp", new ExtVal(true, ExtVal.Boolean));
 
var lib = "System.Windows.Forms, Version=2.0.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089";
var buttons = new ExtVal("System.Windows.Forms.MessageBoxButtons.OK", ExtVal.Enume, lib);
var icon = new ExtVal("System.Windows.Forms.MessageBoxIcon.Asterisk", ExtVal.Enume, lib);
ExternalObject.InvokeStatic("System.Windows.Forms.MessageBox", lib, "Show", "ABC", "123", buttons, icon); 

 

関連項目

ExternalObjectクラス

ValueTypeLibraryプロパティ

 

 

.NET列挙体の使用方法

 

メソッドの引数やプロパティの値に.NET列挙体の値を指定したいときはtypeExtVal.Enumeを指定します。

この場合はvalueには.NET列挙体を名前空間を含めた正式名を文字列で指定し、必要であればlibraryNameにライブラリ(ライブラリの指定方法を参照)を指定します。

 

例)

var sunday = new ExtVal("System.DayOfWeek.Sunday", ExtVal.Enume);

 

var lib = "System.Windows.Forms, Version=2.0.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089";
var ok = new ExtVal("System.Windows.Forms.MessageBoxButtons.OK", ExtVal.Enume, lib);
var asterisk = new ExtVal("System.Windows.Forms.MessageBoxIcon.Asterisk", ExtVal.Enume, lib);

 

 

より以下の仕様が拡張されました -->

メソッドの引数の参照渡し(ByRefref引数)

 

.NETメソッドに参照型の引数を指定したいときはtypeに指定したデータ型にExtVal.ByRef を組み合わせます。

呼び出し先メソッドによって書き換えられた内容は、Valueプロパティで参照できます

 

例)

var v1 = new ExtVal("abc", ExtVal.String + ExtVal.ByRef);
var v2 = new ExtVal("xyz", ExtVal.String + ExtVal.ByRef);
ExternalObject.InvokeStatic("SampleNS.SampleClass", "sample.dll", "Swap", v1, v2);
print(strf("v1=%1 v2=%2", v1.Value, v2.Value), "\n");

<-- ここまで

 



「オンラインマニュアル」一覧へ戻る
「Bizの宝箱」TOPへ戻る