作者a0813 (囧)
看板Visual_Basic
标题[.NET] 把CLASS加进阵列里的疑问
时间Fri Aug 29 05:05:59 2014
教学书上要我们作这样的范例:
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,全都一样)
想请问是因为阵列不能这样用吗?要怎麽作才可以把它修正回去呢?感谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.39.48.191
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Visual_Basic/M.1409259961.A.B25.html
1F:推 johnpage: Dim empd As New emplyee 08/29 07:48
2F:→ johnpage: empd 要new三次,而且要放对位置 08/29 07:49
3F:推 GoalBased: 我不是写VB的,但是你不能写成 08/29 08:57
4F:→ GoalBased: 类似emplyee[] a = new emlpyee[3]() 这种东西吗 08/29 08:57
5F:→ MOONRAKER: 走路都会跌倒不要急着学飞。 08/29 09:25
6F:推 KawasumiMai: 楼上不呛人好像会死一样 08/29 11:07
7F:推 GoalBased: 走路跌倒 或是 想飞跌倒 都没关系啊 08/29 15:04
8F:→ GoalBased: 跌倒了再爬起来 这不就是学习吗 08/29 15:04
9F:推 johnpage: 用 ArrayList时,可以不需要像2F那样写 08/29 15:19
10F:→ johnpage: 设定前ㄧ行都new,应该就可以 08/29 15:20
11F:→ MOONRAKER: 还在练习阶段一次一个就叫他缩写,原来各位都资质优异 08/29 15:27
12F:→ MOONRAKER: 一步登天。那个K某对我就是爱呛人,下次小心呛死你。 08/29 15:28
13F:→ KawasumiMai: 赶跑新人好像很强一样,把自尊建立在践踏别人身上 08/29 18:22
14F:→ KawasumiMai: 自己看一下之前的推文,不是亨就是科就是哈 08/29 18:22
15F:→ KawasumiMai: 也不想一下几岁了 08/29 18:22
16F:→ oread168: 和气生财 09/16 22:19