Connecting Tech Pros Worldwide Forums | Help | Site Map

Value of type 'Integer' cannot be converted

Jim in Arizona
Guest
 
Posts: n/a
#1: Nov 21 '05
I'm learning form an ASP.NET 1.0 book and I tried out some code that returns
this error:

Compiler Error Message: BC30311: Value of type 'Integer' cannot be converted
to 'ASP.multiclasses_aspx.VehicleKey'.

Source Error:


Line 106:
Line 107: Response.Write("<br/>Attempting to start DodgeCar with
PlymouthKey: ")
Line 108: DodgeCar.Ignition(789)
Line 109: Response.Write(DodgeCar.IsRunning)
Line 110:

Source File: E:\hhsinternal\multiclasses.aspx Line: 108

I tried this on .NET 1.1 and 2.0 Beta. I don't have any .NET 1.0 machines to
see if this worked or not. I'm hoping one of you experts can show me the
errors of my coding ways.

Here's the full code if needed:

<script runat="server">

Public Class VehicleKey

Private _Shape As Integer


Public Sub New(ByVal newShape As Integer)

_Shape = newShape

End Sub


Public ReadOnly Property Shape() As Integer

Get

Return _Shape

End Get

End Property

End Class


Public Class Car

Private _Color As String

Private _Gear As Integer

Private _Ignition As Integer

Private _EngineRunning As Boolean

Private Shared _Count = 0


Public Shared ReadOnly Property Count() As Integer

Get

Return _Count

End Get

End Property


Public Property Color() As String

Get

Return _Count

End Get

Set(ByVal value As String)

_Color = value

End Set

End Property


Public ReadOnly Property Gear() As Integer

Get

Return _Gear

End Get

End Property


Public ReadOnly Property IsRunning() As String

Get

If _EngineRunning Then

Return "The engine is running."

Else

Return "The Engine Is Not Running!"

End If

End Get

End Property


Public Overloads Sub ChangeGear(ByVal direction As Integer)

If direction < 0 Then _Gear = Gear - 1

If direction > 0 Then _Gear = Gear + 1

If _Gear > 5 Then _Gear = 5

If _Gear < -1 Then _Gear = -1

End Sub


Public Overloads Sub ChangeGear(ByVal direction As String)

If direction = "down" Then ChangeGear(-1)

If direction = "up" Then ChangeGear(+1)

End Sub


Public Sub Ignition(ByVal IgnitionKey As VehicleKey)

If IgnitionKey.Shape = _Ignition Then _EngineRunning = True

End Sub


Public Sub EngineOff()

_EngineRunning = False

End Sub


Sub New(ByVal IgnitionShape As Integer)

_Color = "Sparkle Midnight Blue"

_Ignition = IgnitionShape

_Count = Count + 1

End Sub

End Class


Sub Page_Load()

Dim HondaKey As New VehicleKey(123)

Dim DodgeKey As New VehicleKey(456)

Dim PlymouthKey As New VehicleKey(789)


Dim DodgeCar As New Car(456)

Response.Write("<div style=""font-family: arial; font-size: 110%;"">New
Object DodgeCar Created.</div>")


Response.Write("<br />Color: " & DodgeCar.Color)

Response.Write("<br />Gear: " & DodgeCar.Gear)


DodgeCar.Color = "Silver"

DodgeCar.ChangeGear("up")

Response.Write("<br /><b>Properties Updated</b>")


Response.Write("<br/>New Color: " & DodgeCar.Color)

Response.Write("<br/>New Gear: " & DodgeCar.Gear)


DodgeCar.ChangeGear(+1)

Response.Write("<br/>Shfted the gear up one.")

Response.Write("<br/>New Gear: " & DodgeCar.Gear)


Response.Write("<br/>Attempting to start DodgeCar with PlymouthKey: ")

DodgeCar.Ignition(789)

Response.Write(DodgeCar.IsRunning)


Response.Write("<hr/>Attempting To Start DodgeCar with HondaKey: ")

DodgeCar.Ignition(123)

Response.Write(DodgeCar.IsRunning)


Response.Write("<hr/>Attempting To Start DodgeCar with DodgeKey: ")

DodgeCar.Ignition(456)

Response.Write(DodgeCar.IsRunning)

Response.Write("<br/>Attempting to stop DodgeCar: ")

DodgeCar.EngineOff()

Response.Write(DodgeCar.IsRunning)

End Sub

</script>

Thanks,
Jim



Chris, Master of All Things Insignificant
Guest
 
Posts: n/a
#2: Nov 21 '05

re: Value of type 'Integer' cannot be converted



"Compiler Error Message: BC30311: Value of type 'Integer' cannot be
converted to 'ASP.multiclasses_aspx.VehicleKey'."

It is expecting a VehicleKey type of object. You can not send in an
Interger when it expects a VehicleKey type.

From what your code looks like you could do something like:
Line 108: DodgeCar.Ignition(new VehicleKey(789))

Or since you defined did: "Dim PlymouthKey As New VehicleKey(789)" you could
just pass in PlymouthKey
Line 108: DodgeCar.Ignition(PlymouthKey)


Make sure you turn "Option Strict On" This will help you figure these
errors out at design time.

Hope this helps
Chris


"Jim in Arizona" <tiltowait@hotmail.com> wrote in message
news:eU9%23BA%23BFHA.1452@TK2MSFTNGP11.phx.gbl...[color=blue]
> I'm learning form an ASP.NET 1.0 book and I tried out some code that
> returns this error:
>
> Compiler Error Message: BC30311: Value of type 'Integer' cannot be
> converted to 'ASP.multiclasses_aspx.VehicleKey'.
>
> Source Error:
>
>
> Line 106:
> Line 107: Response.Write("<br/>Attempting to start DodgeCar with
> PlymouthKey: ")
> Line 108: DodgeCar.Ignition(789)
> Line 109: Response.Write(DodgeCar.IsRunning)
> Line 110:
>
> Source File: E:\hhsinternal\multiclasses.aspx Line: 108
>
> I tried this on .NET 1.1 and 2.0 Beta. I don't have any .NET 1.0 machines
> to see if this worked or not. I'm hoping one of you experts can show me
> the errors of my coding ways.
>
> Here's the full code if needed:
>
> <script runat="server">
>
> Public Class VehicleKey
>
> Private _Shape As Integer
>
>
> Public Sub New(ByVal newShape As Integer)
>
> _Shape = newShape
>
> End Sub
>
>
> Public ReadOnly Property Shape() As Integer
>
> Get
>
> Return _Shape
>
> End Get
>
> End Property
>
> End Class
>
>
> Public Class Car
>
> Private _Color As String
>
> Private _Gear As Integer
>
> Private _Ignition As Integer
>
> Private _EngineRunning As Boolean
>
> Private Shared _Count = 0
>
>
> Public Shared ReadOnly Property Count() As Integer
>
> Get
>
> Return _Count
>
> End Get
>
> End Property
>
>
> Public Property Color() As String
>
> Get
>
> Return _Count
>
> End Get
>
> Set(ByVal value As String)
>
> _Color = value
>
> End Set
>
> End Property
>
>
> Public ReadOnly Property Gear() As Integer
>
> Get
>
> Return _Gear
>
> End Get
>
> End Property
>
>
> Public ReadOnly Property IsRunning() As String
>
> Get
>
> If _EngineRunning Then
>
> Return "The engine is running."
>
> Else
>
> Return "The Engine Is Not Running!"
>
> End If
>
> End Get
>
> End Property
>
>
> Public Overloads Sub ChangeGear(ByVal direction As Integer)
>
> If direction < 0 Then _Gear = Gear - 1
>
> If direction > 0 Then _Gear = Gear + 1
>
> If _Gear > 5 Then _Gear = 5
>
> If _Gear < -1 Then _Gear = -1
>
> End Sub
>
>
> Public Overloads Sub ChangeGear(ByVal direction As String)
>
> If direction = "down" Then ChangeGear(-1)
>
> If direction = "up" Then ChangeGear(+1)
>
> End Sub
>
>
> Public Sub Ignition(ByVal IgnitionKey As VehicleKey)
>
> If IgnitionKey.Shape = _Ignition Then _EngineRunning = True
>
> End Sub
>
>
> Public Sub EngineOff()
>
> _EngineRunning = False
>
> End Sub
>
>
> Sub New(ByVal IgnitionShape As Integer)
>
> _Color = "Sparkle Midnight Blue"
>
> _Ignition = IgnitionShape
>
> _Count = Count + 1
>
> End Sub
>
> End Class
>
>
> Sub Page_Load()
>
> Dim HondaKey As New VehicleKey(123)
>
> Dim DodgeKey As New VehicleKey(456)
>
> Dim PlymouthKey As New VehicleKey(789)
>
>
> Dim DodgeCar As New Car(456)
>
> Response.Write("<div style=""font-family: arial; font-size: 110%;"">New
> Object DodgeCar Created.</div>")
>
>
> Response.Write("<br />Color: " & DodgeCar.Color)
>
> Response.Write("<br />Gear: " & DodgeCar.Gear)
>
>
> DodgeCar.Color = "Silver"
>
> DodgeCar.ChangeGear("up")
>
> Response.Write("<br /><b>Properties Updated</b>")
>
>
> Response.Write("<br/>New Color: " & DodgeCar.Color)
>
> Response.Write("<br/>New Gear: " & DodgeCar.Gear)
>
>
> DodgeCar.ChangeGear(+1)
>
> Response.Write("<br/>Shfted the gear up one.")
>
> Response.Write("<br/>New Gear: " & DodgeCar.Gear)
>
>
> Response.Write("<br/>Attempting to start DodgeCar with PlymouthKey: ")
>
> DodgeCar.Ignition(789)
>
> Response.Write(DodgeCar.IsRunning)
>
>
> Response.Write("<hr/>Attempting To Start DodgeCar with HondaKey: ")
>
> DodgeCar.Ignition(123)
>
> Response.Write(DodgeCar.IsRunning)
>
>
> Response.Write("<hr/>Attempting To Start DodgeCar with DodgeKey: ")
>
> DodgeCar.Ignition(456)
>
> Response.Write(DodgeCar.IsRunning)
>
> Response.Write("<br/>Attempting to stop DodgeCar: ")
>
> DodgeCar.EngineOff()
>
> Response.Write(DodgeCar.IsRunning)
>
> End Sub
>
> </script>
>
> Thanks,
> Jim
>
>[/color]


Jim in Arizona
Guest
 
Posts: n/a
#3: Nov 21 '05

re: Value of type 'Integer' cannot be converted


"Chris, Master of All Things Insignificant" <chris@No_Spam_Please.com> wrote
in message news:eEvenH%23BFHA.244@TK2MSFTNGP10.phx.gbl...[color=blue]
>
> "Compiler Error Message: BC30311: Value of type 'Integer' cannot be
> converted to 'ASP.multiclasses_aspx.VehicleKey'."
>
> It is expecting a VehicleKey type of object. You can not send in an
> Interger when it expects a VehicleKey type.
>
> From what your code looks like you could do something like:
> Line 108: DodgeCar.Ignition(new VehicleKey(789))
>
> Or since you defined did: "Dim PlymouthKey As New VehicleKey(789)" you
> could just pass in PlymouthKey
> Line 108: DodgeCar.Ignition(PlymouthKey)
>
>
> Make sure you turn "Option Strict On" This will help you figure these
> errors out at design time.
>
> Hope this helps
> Chris
>[/color]

--------SNIP-----------


That was exactly what I needed to know. Actually, it was similar in the book
and somehow along the way I must of stopped paying attention to what I was
doing.

Thanks Chris.
Jim


Closed Thread