2011-10-18 3 views
1

Я новичок в VB.net и требует вашей помощи. У меня две структуры vb.net, Quotation и FareAsPerVehicleType, цитата зависит от FareAsPerVehicleType. Я пытаюсь добавить VehicleType в Quotation, используя следующее:Вложенный список пользовательских объектов. VB.NET

Dim Quot As New Quotation 
Dim vT As FareAsPerVehicleType 
    vT.TypeOfVehicle = "S" 
    vT.Fare = _raw_Price * vF.Saloon_Factor 
Quot.VehicleType.Add(vT) 

Public Structure FareAsPerVehicleType 
    Dim TypeOfVehicle As String 
    Dim Fare As Decimal 
End Structure 

Public Structure Quotation 
    Dim VehicleType As List(Of FareAsPerVehicleType) 
    Dim Mileage As Decimal 
    Dim TimeToTravel As Decimal 
    Dim Pickup As String 
    Dim Dropoff As String 
End Structure 

При этом я получаю следующее сообщение об ошибке.

<"System.NullReferenceException was unhandled"> 
<" Message=Object reference not set to an instance of an object."> 
<" Source=WindowsApplication1"> 

Пожалуйста, помогите Привет

ответ

0

Вам нужно создать экземпляр коллекции, прежде чем использовать его. Как и когда вы объявляете новый объект Quotation, список VehicleType имеет значение ничего. Измените объявление строку

Dim VehicleType As New List(Of FareAsPerVehicleType) 

или даже лучше, изменения в декларацию, чтобы удалить тусклые и заменить общественности, чтобы показать доступность поля.

Public VehicleType As New List(Of FareAsPerVehicleType) 

Для того чтобы действительно сделать код блеск, можно заменить поле с автоматическим свойством:

Public Property VehicleType() As New List(Of FareAsPerVehicleType) 

Любой из них будет работать, чтобы избавиться от ошибки.