/ / confondu par le code d'erreur dans VB.Net - vb.net

confondu par le code d'erreur dans VB.Net - vb.net

Mon code génère une erreur "Erreur de type" Average.Module1.student "ne peut pas être converti en" tableau à une dimension de Average.Module1.student. "Sur la ligne 15. Qu'est-ce que je néglige?

Module Module1 Système d'importation

Class student
Public id As Integer
Public name As String
Public M1 As Integer
Public M2 As Integer
Public objStudent As String
Public Function average() As Double
Return (M1 + M2) / 2
End Function
End Class
Class Program
Private Shared Sub Main(args As String())
Dim objstudent() As student = New student()

Dim s As student
For i As Integer = 0 To 14
s = New student()
Console.WriteLine("Enter the Student id")
s.id = Convert.ToInt32(Console.ReadLine())
Console.WriteLine("Enter the Student Name")
s.name = Console.ReadLine()
Console.WriteLine("Enter the first mark")
s.M1 = Convert.ToInt32(Console.ReadLine())
Console.WriteLine("Enter the second mark")
s.M2 = Convert.ToInt32(Console.ReadLine())
objstudent(i) = s
Next
For Each ss As student In objstudent
Dim a As Double = ss.average()
If a >= 90 Then
Console.WriteLine(ss.name + "Your grade is A")
ElseIf (a >= 80) AndAlso (a < 90) Then
Console.WriteLine(ss.name + "Your grade is B")
ElseIf (a >= 70) AndAlso (a < 80) Then
Console.WriteLine(ss.name + "Your grade is C")
ElseIf (a >= 60) AndAlso (a < 70) Then
Console.WriteLine(ss.name + "Your grade is D")
Else
Console.WriteLine(ss.name + "Sorry, You failed")
End If

Next

End Sub
End Class

Module de fin

Réponses:

0 pour la réponse № 1
Dim objstudent() As student = New student()

Ce n'est pas une déclaration de tableau correcte. Vous déclarez que vous voulez un tableau d'étudiants, mais vous utilisez le constructeur Student. Donc, vous êtes réel dire:

new array = new object

Voici la déclaration correcte. Notez que les tableaux sont basés sur 0. Alors:

Dim objstudent As student() = New student(14) {}

est un tableau de 15 étudiants.

Class student
Public id As Integer
Public name As String
Public M1 As Integer
Public M2 As Integer
Public objStudent As String
Public Function average() As Double
Return (M1 + M2) / 2
End Function
End Class
Class Program
Private Shared Sub Main(args As String())
Dim objstudent As student() = New student(14) {}

Dim s As student
For i As Integer = 0 To 14
s = New student()
Console.WriteLine("Enter the Student id")
s.id = Convert.ToInt32(Console.ReadLine())
Console.WriteLine("Enter the Student Name")
s.name = Console.ReadLine()
Console.WriteLine("Enter the first mark")
s.M1 = Convert.ToInt32(Console.ReadLine())
Console.WriteLine("Enter the second mark")
s.M2 = Convert.ToInt32(Console.ReadLine())
objstudent(i) = s
Next
For Each ss As student In objstudent
Dim a As Double = ss.average()
If a >= 90 Then
Console.WriteLine(ss.name + "Your grade is A")
ElseIf (a >= 80) AndAlso (a < 90) Then
Console.WriteLine(ss.name + "Your grade is B")
ElseIf (a >= 70) AndAlso (a < 80) Then
Console.WriteLine(ss.name + "Your grade is C")
ElseIf (a >= 60) AndAlso (a < 70) Then
Console.WriteLine(ss.name + "Your grade is D")
Else
Console.WriteLine(ss.name + "Sorry, You failed")
End If

Next

End Sub
End Class