verhaba
Gebruiker
- Lid geworden
- 8 feb 2008
- Berichten
- 79
hallo
Ik heb een schoolopdracht en die luidt als volgt:
Creëer een klasse waarvan objecten een voorstelling zijn van een punt op een XY-assenstelsel. Een punt heeft als eigenschappen een X en Y positie.
Creëer ook een klasse waarvan objecten een voorstelling zijn van een lijn, met een start- en eindpunt. Van de lijn moet je de lengte kunnen opvragen.
De client code krijgen we cadeau en moeten dus passend Klasse model maken. Dit is de client:
Opgelet: Aan de client code mag niets veranderd worden...
Dit is mijn code:
Spijtig krijg ik deze 'mooie' error. Ik weet waar het schoentje knelt... Maar zie niet de oplossing. Hij geeft een nulexeptionerror aangezien hij nog geen waarde heeft (null) voor het uitrekenen van de Lengte... hoe los ik dit nu op?!? iemand ideeën? Alvast bedankt.
Ik heb een schoolopdracht en die luidt als volgt:
Creëer een klasse waarvan objecten een voorstelling zijn van een punt op een XY-assenstelsel. Een punt heeft als eigenschappen een X en Y positie.
Creëer ook een klasse waarvan objecten een voorstelling zijn van een lijn, met een start- en eindpunt. Van de lijn moet je de lengte kunnen opvragen.
De client code krijgen we cadeau en moeten dus passend Klasse model maken. Dit is de client:
Opgelet: Aan de client code mag niets veranderd worden...
Code:
Module PuntEnLijnTest
Sub Main()
PuntTestFixture()
LijnTextFixture()
'
Console.ReadLine()
End Sub
Sub PuntTestFixture()
Dim punt1 As Punt = New Punt
Console.WriteLine(punt1.X = 0)
Console.WriteLine(punt1.Y = 0)
'
punt1.X = 1
Console.WriteLine(punt1.X = 1)
Console.WriteLine(punt1.Y = 0)
'
punt1.Y = 3
Console.WriteLine(punt1.X = 1)
Console.WriteLine(punt1.Y = 3)
End Sub
Sub LijnTextFixture()
Dim lijn1 As Lijn = New Lijn
Console.WriteLine(lijn1.StartPunt Is Nothing)
Console.WriteLine(lijn1.EindPunt Is Nothing)
Console.WriteLine(lijn1.Lengte = 0)
'
Dim startPunt As Punt = New Punt With {.X = 1, .Y = 4}
lijn1.StartPunt = startPunt
Console.WriteLine(lijn1.StartPunt Is startPunt)
Console.WriteLine(lijn1.EindPunt Is Nothing)
Console.WriteLine(lijn1.Lengte = 0)
'
Dim eindPunt As Punt = New Punt With {.X = 5, .Y = 1}
lijn1.EindPunt = eindPunt
Console.WriteLine(lijn1.StartPunt Is startPunt)
Console.WriteLine(lijn1.EindPunt Is eindPunt)
Console.WriteLine(lijn1.Lengte = 5)
End Sub
End Module
Dit is mijn code:
Code:
Class Punt
Private m_X As Double = 0.0
Public Property X() As Double
Get
X = m_X
End Get
Set(ByVal value As Double)
m_X = value
End Set
End Property
Private m_Y As Double = 0.0
Public Property Y() As Double
Get
Y = m_Y
End Get
Set(ByVal value As Double)
m_Y = value
End Set
End Property
End Class
Class Lijn
Private m_StartPunt As Punt
Public Property StartPunt() As Punt
Get
StartPunt = m_StartPunt
End Get
Set(ByVal value As Punt)
m_StartPunt = value
SetLengte()
End Set
End Property
Private m_EindPunt As Punt
Public Property EindPunt() As Punt
Get
EindPunt = m_EindPunt
End Get
Set(ByVal value As Punt)
m_EindPunt = value
SetLengte()
End Set
End Property
Private m_Lengte As Double
Public ReadOnly Property Lengte() As Double
Get
Lengte = m_Lengte
End Get
End Property
Private Sub SetLengte()
m_Lengte = System.Math.Sqrt((System.Math.Abs(MyClass.StartPunt.X) + System.Math.Abs(MyClass.EindPunt.Y)) + _
(System.Math.Abs(MyClass.StartPunt.Y) + System.Math.Abs(MyClass.EindPunt.X)) _
)
End Sub
End Class
Spijtig krijg ik deze 'mooie' error. Ik weet waar het schoentje knelt... Maar zie niet de oplossing. Hij geeft een nulexeptionerror aangezien hij nog geen waarde heeft (null) voor het uitrekenen van de Lengte... hoe los ik dit nu op?!? iemand ideeën? Alvast bedankt.
Code:
System.NullReferenceException was unhandled
Message="De objectverwijzing is niet op een exemplaar van een object ingesteld."
Source="AfstandsOnderwijs3_1"
StackTrace:
bij ConsoleApplication1.Lijn.SetLengte() in C:\Users\Bart\Documents\Visual Studio 2008\Projects\AfstandsOnderwijs3\AfstandsOnderwijs3\Module1.vb:regel 49
bij ConsoleApplication1.Lijn.set_StartPunt(Punt value) in C:\Users\Bart\Documents\Visual Studio 2008\Projects\AfstandsOnderwijs3\AfstandsOnderwijs3\Module1.vb:regel 29
bij ConsoleApplication1.PuntEnLijnTest.LijnTextFixture() in C:\Users\Bart\Documents\Visual Studio 2008\Projects\AfstandsOnderwijs3\AfstandsOnderwijs3\Module1.vb:regel 82
bij ConsoleApplication1.PuntEnLijnTest.Main() in C:\Users\Bart\Documents\Visual Studio 2008\Projects\AfstandsOnderwijs3\AfstandsOnderwijs3\Module1.vb:regel 57
bij System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
bij System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bij Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bij System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bij System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bij System.Threading.ThreadHelper.ThreadStart()
InnerException: