2016-07-26 6 views
1

同じ変数定義を2つの異なるクラスに含めることは可能ですか? vb.netの学習を始めたばかりで、アドレス確認APIを実装しようとしていますが、今のところUPSクラスはトラッキングの詳細については動作しますが、UPSaddressはありません。両方のクラス間の唯一の違いは、パス変数とコンストラクタのパラメータです。vb.netの異なるクラスで同じ変数定義を持つことはできますか?

Public Class UPS 
Private accessKey As String = "0D0F94260Dxxxxx" 
Private userName As String = "xxxxxx" 
Private passWord As String = "xxxxx" 
Private path As String = "https://www.ups.com/ups.app/xml/Track" 
Public xml As XmlDocument = New XmlDocument() 



public Sub New(trackNo As String) 

    xml = getUPSXMLbyTrackingNumber(trackNo) 
End Sub 




Public Function getIdentificationNumber() As String 
    Dim idNo As String = getNodeValue(xml, "TrackResponse/Shipment/ShipmentIdentificationNumber") 

    Return idNo.Trim 
    End Function 
End Class 

これは他のクラスです。

Public Class UPSAddress 

Private accessKey As String = "0D0F94260Dxxxxx" 
Private userName As String = "xxxxxxx" 
Private passWord As String = "xxxxxxx" 
Private path as String = "https://wwwcie.ups.com/ups.app/xml/XAV" 
Public xml As XmlDocument = New XmlDocument() 

public Sub New(Address As String,City as String,State as String,Zipcode as String) 

    xml = getUPSXMLAddressValidation(Address,City,State,Zipcode) 

End Sub 

end class 

このアプローチは正しいですか?これはVBコンパイラのクラスを呼び出す方法です。

Dim trackNo As String = upsTrackNo.Value 
    Dim Address as String = upsAddress.value 
    Dim City as String = upsCity.value 
    Dim State as String = upsState.value 
    Dim Zipcode as String = upsZipcode.value 

    'This works' 
    Dim ups As New UPS(trackNo){ 
    ..some code 

    } 

    'Im not sure if this will work' 
    Dim upsAddress as new UPSAddress(Address,City,State,Zipcode){ 
    ...some code 
    } 
+0

まあ最後のisnt VBは、あなたは学びますか? – BugFinder

+0

そのvbコンパイラ、申し訳ありませんが、私はそれを言及しませんでした。 – Cesar

+0

しかし最後のコードはVBではない、そのC#、もしあなたがC#でそれをやろうとしていないなら、ここにC#タグは必要ありません。おそらく、なぜあなたは最後のセクションで苦労しているのでしょうか? – BugFinder

答えて

1

一般的には、共通変数を保持する基本クラスを使用します。あなたの他のクラスは、このクラスを継承し、パスプロパティの独自の実装を提供します:

Public MustInherit Class UPSBase 
    Protected accessKey As String = "0D0F94260Dxxxxx" 
    Protected userName As String = "xxxxxx" 
    Protected passWord As String = "xxxxx" 
    Protected MustOverride ReadOnly Property Path As String 
End Class 

Public Class UPSAddress 
    Inherits UPSBase 

    Protected Overrides ReadOnly Property Path As String 
     Get 
      Return "https://wwwcie.ups.com/ups.app/xml/XAV" 
     End Get 
    End Property 
End Class 

Public Class UPS 
    Inherits UPSBase 

    Protected Overrides ReadOnly Property Path As String 
     Get 
      Return "https://www.ups.com/ups.app/xml/Track" 
     End Get 
    End Property 
End Class 
+0

これは意味があります。ありがとうございました!! ...どうすればvb.netコンパイラでUPSAddressクラスを使いたいですか?新しいUPSAddress(住所、市、州、郵便番号)が機能するように、upsAddressを修正しますか? – Cesar

+0

はい、うまく動作するはずです –

+0

助けてくれてありがとう:) – Cesar

関連する問題