2017-12-22 12 views
0

を戻しますそれを条件コードと呼ぶ)は、呼び出されるすべての関数/サブでほぼ設定します。我々はどこにでもこのCond.codeを使用asp.net VBの最善の方法は、私はセッション変数を使用することができることを知っている..しかし、不思議4.5 VB</p> <p>asp.netフレームワークの結果コード

Function xyz(bla as String, blab as String) as dataset 
    .. do the deed 
    **Cond.code = -1** 

    Return ds 

。明らかにPublic Shared変数にすることはできませんが、サブまたは関数内で常に「condtion code」を設定する最も効率的な方法が必要です。設定されてから、時間呼び出し元関数によってチェックされているので、寿命は非常に短いです。

答えて

1

条件コードが正確にどのように使用されているかは不明です。カスタム例外タイプを適切に使用すると、その例外タイプが置き換えられる可能性があります。しかし、本当に必要な場合は、本質的にはかなり腐っているグローバルを設定するのではなく、メソッドによって返されるほうがよいでしょう。 2つのメソッドが同時に呼び出された場合はどうなりますか?それはちょうど脆弱で不必要に限定している。例えば

、あなたはこのように、戻り値プラスに条件コードを保持するための容器を作ることができる:

Public Class ReturnValue(Of T) 
    Public Sub New(value As T, conditionCode As Integer) 
     Me.Value = value 
     Me.ConditionCode = conditionCode 
    End Sub 

    Public ReadOnly Property Value As T 
    Public ReadOnly ConditionCode As Integer 
End Class 

コンストラクタ内のコードを必要とすることで、そのように、それはすべての方法を強制的にその戻り値に常に条件コードを指定します。それは忘れないでことができたの方法:

Function xyz(bla As String, blab As String) As ReturnValue(Of DataSet) 
    ' do the deed 
    Return New ReturnValue(ds, -1) 
End Function 

はしかし、その後も、私はまだ強く、条件コードを作る推薦は、最低でも、定数のセットを列挙を使用しますか。 -1はあまり自己文書化していません。

関連する問題