配列の移動
Namespace: FVILAssembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)
Syntax
C# |
---|
public virtual Object MoveFrom( Object object ) |
Visual Basic |
---|
Public Overridable Function MoveFrom ( object As Object ) As Object |
Parameters
- object
- Type: System..::..Object
移動元のインスタンス
Return Value
Type: Object配列移動後の自身のインスタンスを返します。
Remarks
引数に指定されたインスタンスが保有する配列のアドレスをこのインスタンスへ移動します。
移動元のインスタンスは Clear()()()() が実行されます。
インスタンスの型は同一である必要があります。
型の異なるインスタンスや null が指定された場合は System の例外が発行されます。
例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。
エラーコード:
値 | ErrorCode メンバ | 内容 |
---|---|---|
11 | FVIL.ErrorCode.INVALID_PARAMETER | 引数に指定された値が不正です。 |
Examples
ソースコード:
C# | Copy |
---|---|
using System; using System.Collections.Generic; using System.Text; using fvalgcli; namespace User.SampleCode.Array { public partial class HCD_CIRCLE_T_ARRAY { /// <summary> /// 配列の移動. /// </summary> [FvPluginExecute] public void MoveFrom() { int countOrg = 10; // 0) 配列の作成. List<fvalgcli.HCD_CIRCLE_T> list = new List<fvalgcli.HCD_CIRCLE_T>(countOrg); for (int i = 0; i < countOrg; i++) { list.Add(fvalgcli.HCD_CIRCLE_T.init(i * 10 + i, i * 10 + i, i, i)); } // 1) インスタンスの準備と生成. FVIL.HCD_CIRCLE_T_ARRAY src1 = new FVIL.HCD_CIRCLE_T_ARRAY(list); FVIL.HCD_CIRCLE_T_ARRAY src2 = new FVIL.HCD_CIRCLE_T_ARRAY(); fvalgcli.HCD_CIRCLE_T_PTR srcAddress = src1.Address; int srcCount = src1.Count; bool srcIsAttach = src1.IsAttach; // 2) 配列の移動. src2.MoveFrom(src1); // E) 確認 // 移動元のインスタンスはClear()が実行される. Assert.IsTrue(src1.Address == fvalgcli.HCD_CIRCLE_T_PTR.Zero, "src1.Address = {0}", src1.Address); Assert.IsTrue(src1.Count == 0, "src1.Count = {0}", src1.Count); Assert.IsTrue(src1.IsAttach == false, "src1.IsAttach = {0}", src1.IsAttach); // 移動後のインスタンス. Assert.IsTrue(src2.Address == srcAddress, "src2.Address = {0}", src2.Address); Assert.IsTrue(src2.Count == srcCount, "src2.Count = {0}", src2.Count); Assert.IsTrue(src2.IsAttach == srcIsAttach, "src2.IsAttach = {0}", src2.IsAttach); fvalgcli.HCD_CIRCLE_T_PTR ptr2 = src2.Address; for (int i = 0; i < src2.Count; i++) { Assert.IsTrue(list[i].r == ptr2[0].r && list[i].score == ptr2[0].score && list[i].xc == ptr2[0].xc && list[i].yc == ptr2[0].yc, "src2[{0}]: r={1},score={2},xc={3},yc={4})", i, ptr2[0].r, ptr2[0].score, ptr2[0].xc, ptr2[0].yc); Console.WriteLine("src2[{0}]: r={1},score={2},xc={3},yc={4})", i, ptr2[0].r, ptr2[0].score, ptr2[0].xc, ptr2[0].yc); ptr2 += 1; } } } } |
Visual Basic | Copy |
---|---|
Imports System.Collections.Generic Imports System.Text Imports fvalgcli Namespace SampleCode.Array Public Partial Class HCD_CIRCLE_T_ARRAY ''' <summary> ''' 配列の移動. ''' </summary> <FvPluginExecute> _ Public Sub MoveFrom() Dim countOrg As Integer = 10 ' 0) 配列の作成. Dim list As New List(Of fvalgcli.HCD_CIRCLE_T)(countOrg) For i As Integer = 0 To countOrg - 1 list.Add(fvalgcli.HCD_CIRCLE_T.init(i * 10 + i, i * 10 + i, i, i)) Next ' 1) インスタンスの準備と生成. Dim src1 As New FVIL.HCD_CIRCLE_T_ARRAY(list) Dim src2 As New FVIL.HCD_CIRCLE_T_ARRAY() Dim srcAddress As fvalgcli.HCD_CIRCLE_T_PTR = src1.Address Dim srcCount As Integer = src1.Count Dim srcIsAttach As Boolean = src1.IsAttach ' 2) 配列の移動. src2.MoveFrom(src1) ' E) 確認 ' 移動元のインスタンスはClear()が実行される. Assert.IsTrue(src1.Address = fvalgcli.HCD_CIRCLE_T_PTR.Zero, "src1.Address = {0}", src1.Address) Assert.IsTrue(src1.Count = 0, "src1.Count = {0}", src1.Count) Assert.IsTrue(src1.IsAttach = False, "src1.IsAttach = {0}", src1.IsAttach) ' 移動後のインスタンス. Assert.IsTrue(src2.Address = srcAddress, "src2.Address = {0}", src2.Address) Assert.IsTrue(src2.Count = srcCount, "src2.Count = {0}", src2.Count) Assert.IsTrue(src2.IsAttach = srcIsAttach, "src2.IsAttach = {0}", src2.IsAttach) Dim ptr2 As fvalgcli.HCD_CIRCLE_T_PTR = src2.Address For i As Integer = 0 To src2.Count - 1 Assert.IsTrue(list(i).r = ptr2(0).r AndAlso list(i).score = ptr2(0).score AndAlso list(i).xc = ptr2(0).xc AndAlso list(i).yc = ptr2(0).yc, "src2[{0}]: r={1},score={2},xc={3},yc={4})", i, ptr2(0).r, ptr2(0).score, ptr2(0).xc, _ ptr2(0).yc) Console.WriteLine("src2[{0}]: r={1},score={2},xc={3},yc={4})", i, ptr2(0).r, ptr2(0).score, ptr2(0).xc, ptr2(0).yc) ptr2 += 1 Next End Sub End Class End Namespace |
Exceptions
Exception | Condition |
---|---|
System..::..InvalidCastException | 引数に指定されたインスタンスをこのクラスの型に変換できません。 |
System..::..NullReferenceException | 引数に null が指定されました。 |
FVIL..::..CFviException | この例外の原因については、上記のエラーコード表をご参照ください。 |