2009-07-08 14 views
1

iがバリアントとして扱われるため、次のコードでコンパイル時エラーが発生します。エラーは:"ByRef引数型の不一致です。"Visual Basic 6.0値渡し参照差分

しかし、私がパラメータByValを渡すと、何のエラーもありません?

Private Sub Command2_Click() 
    Dim i, j As Integer 
    i = 5 
    j = 7 
    Call Swap(i, j) 
End Sub 

Public Sub Swap(ByRef X As Integer, ByRef Y As Integer) 
    Dim tmp As Integer 
    tmp = X 
    X = Y 
    Y = tmp 
End Sub 

答えて

3

ByValは値を渡しているため、バリアントを整数に自動変換します。 ByRefは、サブルーチンで変更可能な変数を渡そうとしています。本質的に私はByRefシナリオでXです。 VB6では、バリアントを整数として変更することはできません。

6

複数の変数を1つの行に絞り込むと、Dim i, j as Integer jは整数として淡色表示されますが、iは変形です。各変数型を明示的に宣言する必要があります。私は1行に1つの変数だけを含めることを好みます。

Dim i As Integer, j As Integer 

または

Dim i As Integer 
Dim j As Integer 

これは私が他のプログラマのコード

を継承したときに、私が学んだものです
関連する問題