是VB.Net的新手。我被赋予了使用Power
为Square
,Cube
,Interface
编写用户方法的任务。当我编译代码时,我收到错误:
Exception Caught: Array index is out of range
我不知道我在哪里弄错了。我刚刚开始学习VB.Net。
这是Interface的源代码:
Interface Calc
Sub Square(ByVal number As Double)
Sub Cube(ByVal number As Double)
Sub Power(ByVal number As Double, ByVal raiseTo As Double)
End Interface
这是我实现上述接口的类的源代码:
Class Calculation
Implements Calc
Sub Square(ByVal number As Double) Implements Calc.Square
Console.WriteLine("Square of " & number & " = " (number * number))
End Sub
Sub Cube(ByVal number As Double) Implements Calc.Cube
Console.WriteLine("Power of " & number & " = " (number * number * number))
End Sub
Sub Power(ByVal number As Double, ByVal raiseTo As Double) Implements Calc.Power
Console.WriteLine("Power of " & number & " = " (number ^ raiseTo))
End Sub
End Class
这是主要方法:
Sub Main()
Console.WriteLine(vbCrLf & vbTab & "********** Calculation Using Interface *********")
Dim obj As Calculation = New Calculation()
Try
obj.Square(5.0)
obj.Cube(5.0)
obj.Power(5.0, 4.0)
Catch ex As Exception
Console.WriteLine(vbCrLf & "Exception Caught: " & ex.Message.ToString())
End Try
Console.WriteLine(vbCrLf & "Press any key to exit....")
Console.ReadLine()
End Sub
答案 0 :(得分:1)
在您的输出中,您正在连接一个字符串,但是您在连接中错过了&
这一行:
Console.WriteLine("Square of " & number & " = " (number * number))
应该是:
Console.WriteLine("Square of " & number & " = " & (number * number))
错误消息是(我认为),因为编译器评估" = "
作为字符串数组并尝试返回它的(number * number)
元素。请考虑以下事项:
Console.WriteLine((New String("foo"))(1)) 'this fails
作为旁注,您应该切换Option Strict On。 See here for reasons why。这不会解决您的问题,但在您修复此问题之前,它不会允许代码编译。
在部署应用程序之前花时间修复编译时错误比尝试远程调试运行时错误要好得多。
答案 1 :(得分:0)
试试这个
Public Class Calculation
Implements CalcIFace
Sub Square(ByVal number As Double) Implements CalcIFace.Square
Console.WriteLine("Square of " & number & " = " & number * number & "")
End Sub
Sub Cube(ByVal number As Double) Implements CalcIFace.Cube
Console.WriteLine("Power of " & number & " = " & number * number * number & "")
End Sub
Sub Power(ByVal number As Double, ByVal raiseTo As Double) Implements CalcIFace.Power
Console.WriteLine("Power of " & number & " = " & number ^ raiseTo & "")
End Sub
End Class
在OP的方法中,连接错误
OP做了Console.WriteLine("Square of " & number & " = " (number * number))
,这应该像Console.WriteLine("Square of " & number & " = " & (number * number))
一样正确连接