ab.com コミュニティ
https://www.activebasic.com/forum/

ユーザー定義の識別子がかぶった場合の対処
https://www.activebasic.com/forum/viewtopic.php?t=1747
ページ 11

作成者:  konisi [ 2007年1月04日(木) 01:55 ]
記事の件名:  ユーザー定義の識別子がかぶった場合の対処

例えば、次のようなコードはエラーになります。
コード:
const k=1
Sub f()
    Dim k As Long
End Sub
これは定数kと同じ名前のローカル変数が宣言されようとしているのでエラーになるのですが
変数kが宣言されている関数内で、const.kと書かれたときは定数kを参照、特に指示が無い場合はローカル変数を参照。
という方式にすればエラーにならず、且つ両方使用できるので便利だと思います。

同様に、次のようなコード
コード:
Dim k As Long
Sub f()
    Dim k As Double
End Sub
のf関数内でグローバル変数kを使いたい場合に、global.kと表記する事で参照できるように出来ればと思います。

同様に、次のようなコードが書ければ便利だと考えます。
コード:
const k=1
Dim k As Long
Class F
Private
    k As Single
Protect
    k As Word
Public
    k As Byte

    Sub F()
    End Sub

    Sub a()
        Dim k As Double,n As Double
        n=const.k'定数
        n=global.k'グローバル変数
        n=this.private.k'内部変数
        n=this.protect.k'半保護変数
        n=this.public.k'公開変数
        n=this.k'内部変数(標準動作)
'内部変数が無い場合は半保護変数、それも無い場合は公開変数を参照する。
        n=k'ローカル変数(標準動作)
'ローカル変数が無い場合は内部変数、以下thisの優先度に等しい。
'thisの優先度で判定を行った後公開変数を参照できない場合は、グローバル変数を参照する。グローバル変数が無ければ定数を参照する。
    End Sub
End Class

ページ 11 全ての表示時間は UTC+09:00 です
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/