私はいくつかの古い VB コードを調べていて、次のような関数定義に出くわしました -
Private Function ExistingCustomer(Index As Integer, Customer As String) As Integer
Private Sub cmdCustomerList_Click()
違いは何ですか?
私はいくつかの古い VB コードを調べていて、次のような関数定義に出くわしました -
Private Function ExistingCustomer(Index As Integer, Customer As String) As Integer
Private Sub cmdCustomerList_Click()
違いは何ですか?
関数は値を返しますが、Sub は返しません。それはとても簡単です。
関数は式で使用することもできます。サブルーチンはできません。関数は、サブルーチンよりもコードの可読性を高めることができます。
関数が読みやすさを向上させる方法の例を次に示します。
If AccountIsLocked("JJones") then Msgbox("This account is locked")
この関数はどこかで定義されます
public function AccountIsLocked(UserId as string) as boolean
dim usr = uow.AccountRepository.UserInfo(UserId)
return usr.locked
end function
以下は同じ例ですが、サブルーチンでコーディングされています。
CheckIfAccountLocked("JJones")
他の場所では、このサブが定義されています。
public sub CheckIfAccountLocked(UserId)
if uow.AccountRepository.UserInfo(UserId).locked then
msgbox("Account is locked")
end if
end sub
また、値のチェックはアクションから分離されていることに注意してください。これは、職務の分離に貢献します。この関数は、再利用性に役立ちます。
VB6 では、括弧を管理する奇妙な規則がいくつかあります。サブへのパラメーターがない場合、括弧は必要ありません (Visual Studio は括弧を削除する可能性があると思います)。これを回避する 1 つの方法は、サブの前に「Call」というキーワードを追加することです。
Call CheckIfAccountLocked()
対
CheckIfAccountLocked
関数では、ブール値、文字列、およびその他のデータ型として値を返すことができます。
しかし、サブは何も返しません。与えられたコードと命令を実行するだけです。これらもメソッドとみなされます
サブはコントロールのイベントでも使用され、これらのイベントも値を返しません。
たとえば、コマンド ボタンのクリック イベント: Private sub cmd_click()
サブ終了
VB6 の Sub と Function の違いは何ですか?
「sub」は何らかのアクションを実行できます。「サブ」は値を返しません。
例:
Form_Load()
「function」も何らかのアクションを実行できますが、呼び出されたポイントに何らかの値を返します。つまり、「関数は、多くの場合、変数に基づいて値を返します」
例:
Val()、FormatPercentage()。
どちらもコードを記述するセクションですが、関数は値を返す必要があります。たとえば、複雑な数学的手順を何度も実行する必要があるプログラムがある場合、単純に関数を作成し、そこに複雑な数学コードを入れて、計算を行う必要があるときはいつでも関数を呼び出すことができます。 . これがうまく説明できたかどうかわからないことを願っています。
vbの関数
VBのサブ
構文 : private sub sub_name(引数/s(オプション))
サブ終了