教学书上要我们作这样的范例:
1、设定一个emplyee 员工类别,该类别的成员如下:
(1)salary 薪水属性:可用设定员工薪水,最小值20000,最大值40000
(2)ename 字段:原来设定员工姓名
(3)Sub PrintData():显示员工的姓名、薪水资讯
(4)ShowError()事件:当员工salary 薪水属性设定错误时,会触发此事件,并显示“薪
水必须介于20000到40000之间”
2、延续上例,建立emplyee员工物件阵列,并让使用者自己指定员工人数,接着再逐一输
入每一位员工的姓名和薪资,最后再印出您所输入的所有员工资料。
3、延续上例,再制作搜寻员工姓名的功能。先让使用者输入要搜寻员工的姓名,接着会
由员工物件阵列去寻找所符合的资料并显示出来。
这是目前写的:
Module Module1
Class emplyee
Private _salary As Integer
Public Ename As String
Public Event salaryerror(ByVal _salary As Integer)
Public Sub printdata()
End Sub
Public Property salary() As Integer
Get
Return _salary
End Get
Set(ByVal value As Integer)
_salary = value
If value < 20000 Or value > 40000 Then
_salary = 25000
RaiseEvent salaryerror(value)
End If
End Set
End Property
End Class
Sub showerror(ByVal _salary As Integer)
Console.WriteLine("{0}不足2万或超过4万,请重新填写。", _salary)
End Sub
Sub main()
Dim empd As New emplyee
AddHandler (empd.salaryerror), AddressOf showerror
Dim empdb As New ArrayList()
empd.Ename = "测试"
empd.salary = 50000
empdb.Add(empd)
empd.Ename = "测试2"
empd.salary = 30000
empdb.Add(empd)
empd.Ename = "测试3"
empd.salary = 25000
empdb.Add(empd)
Dim newemp As emplyee
newemp = empdb(0)
Console.WriteLine("员工1姓名:{0},薪资:{1}", newemp.Ename,
newemp.salary)
Console.WriteLine("测试完成")
newemp = empdb(1)
Console.WriteLine("员工2姓名:{0},薪资:{1}", newemp.Ename,
newemp.salary)
Console.WriteLine("测试完成")
End Sub
End Module
在加入阵列的过程中,已经被加进阵列的那些变量会随着empd的更动也被更改
(也就是后面显示的是员工1=测试3,薪资25000,员工2=测试3,薪资25000,全都一样)
想请问是因为阵列不能这样用吗?要怎么作才可以把它修正回去呢?感谢大家