説明 |
ExtValオブジェクトを初期化します。 valueに設定できる値は、String、Number、Date |
|
呼出形式 |
var val = new ExtVal( [ value, type [, libraryName ] ] ) |
|
戻り値 |
ExtValオブジェクト |
|
引数 |
value |
オブジェクトの値を指定します。 例えば、typeにExtVal.Int32を指定する場合は、この引数には整数を指定します。 有効なデータ型は、String、Number、Date、ByteArrayです。 指定した値はValueプロパティに設定されます。 |
|
integer type |
.NETのデータ型を指定します。 指定できる値についてはTypeプロパティを参照してください。 指定した値はTypeプロパティに設定されます。 |
|
String libraryName |
typeにExtVal.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);
|
|
関連項目 |
メソッドの引数やプロパティの値に.NET列挙体の値を指定したいときはtypeにExtVal.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);
より以下の仕様が拡張されました -->
.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");
<-- ここまで