VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/03/29(Sat) 14:59
投稿者ひろぽん
Eメール
URL
タイトルRe^4: クラスは遅い?

> コレクションを使用していると遅いです。
> また、クラスの参照を頻繁に行うコードだと遅いです。
>
> 簡単なクラスの使い方例です。参考になればと思います。
>
> 'MDI等
> Private clsChild() As Class1
> Private Sub Task1()
>
>     ReDim clsChild(2) As Class1
>    
>     Set clsChild(0) = New Class1
>     Set clsChild(1) = New Class1
>     Set clsChild(2) = New Class1
>    
>     Call LongTask(clsChild(0))
>     Call LongTask(clsChild(1))
>     Call LongTask(clsChild(2))
>    
> End Sub
> Private Sub LongTask(ByRef cChild As Class1)
>
>     Dim udtChild As typChild
>    
>     'udtChildにファイル読み込み
>    
>     cChild.uChild = udtChild
>
> End Sub
>
> 'クラス
> Option Explicit
> Private udtChild As typChild
> Friend Property Let uChild(ByRef newVal As typChild)
>     udtChild = newVal
> End Property
> Friend Property Get uChild() As typChild
>     uChild = udtChild
> End Property
> Public Property Let ChildA(ByVal newVal As Integer)
>     udtChild.uChildA% = newVal%
> End Property
> Public Property Get ChildA() As Integer
>     ChildA = udtChild.uChildA%
> End Property
> Public Property Let ChildB(ByVal newVal As Long)
>     udtChild.uChildB& = newVal&
> End Property
> Public Property Get ChildB() As Long
>     ChildB = udtChild.uChildB&
> End Property
> Public Property Let ChildC(ByRef newVal() As Double)
>     udtChild.uCHildC#() = newVal#()
> End Property
> Public Property Get ChildC() As Double()
>     ChildC = udtChild.uCHildC#()
> End Property
>
> 'モジュール
> Public Type typChild
>     uChildA As Integer
>     uChildB As Long
>     uCHildC() As Double
> End Type

ありがとうございます。
上記コードを試してみたのですが、uChildC()の使い方が分かりません。
今、上記コードの
'udtChildにファイル読み込み
の部分に、
    udtChild.uChildA = 5
    udtChild.uChildB = 10
    udtChild.uCHildC(0) = 15#
と書いてみると、「udtChild.uChildC(0) = 15#」の部分で、
「実行時エラー9、インデックスが有効範囲にありません」
とエラーが出ます。
私には原因が分かりませんでした。
なぜエラーが起こるか教えてください。
よろしくお願いします。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -