[.NET] 把CLASS加进阵列里的疑问

楼主: a0813   2014-08-29 05:05:59
教学书上要我们作这样的范例:
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,全都一样)
想请问是因为阵列不能这样用吗?要怎么作才可以把它修正回去呢?感谢大家
作者: johnpage (johnpage)   2014-08-29 07:48:00
Dim empd As New emplyeeempd 要new三次,而且要放对位置
作者: GoalBased (Artificail Intelligence)   2014-08-29 08:57:00
我不是写VB的,但是你不能写成类似emplyee[] a = new emlpyee[3]() 这种东西吗
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-08-29 09:25:00
走路都会跌倒不要急着学飞。
作者: KawasumiMai (さあ、死ぬがいい)   2014-08-29 11:07:00
楼上不呛人好像会死一样
作者: GoalBased (Artificail Intelligence)   2014-08-29 15:04:00
走路跌倒 或是 想飞跌倒 都没关系啊跌倒了再爬起来 这不就是学习吗
作者: johnpage (johnpage)   2014-08-29 15:19:00
用 ArrayList时,可以不需要像2F那样写设定前ㄧ行都new,应该就可以
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-08-29 15:27:00
还在练习阶段一次一个就叫他缩写,原来各位都资质优异一步登天。那个K某对我就是爱呛人,下次小心呛死你。
作者: KawasumiMai (さあ、死ぬがいい)   2014-08-29 18:22:00
赶跑新人好像很强一样,把自尊建立在践踏别人身上自己看一下之前的推文,不是亨就是科就是哈也不想一下几岁了
作者: oread168 (大地的精靈R)   2014-09-16 22:19:00
和气生财

Links booklink

Contact Us: admin [ a t ] ucptt.com