Cha*_*son 19 vb.net data-structures
我在列表中有一个用户定义的结构,我试图在结构列表中的单个元素中更改值.访问元素不是问题.但是,当我尝试更新该值时,编译器会抱怨:
"表达是一种价值,因此不能成为作业的目标"
例如:
Public Structure Person
Dim first as String
Dim last as String
Dim age as Integer
End Structure
Run Code Online (Sandbox Code Playgroud)
_
Public Sub ListTest()
Dim newPerson as Person
Dim records as List (Of Person)
records = new List (Of Person)
person.first = "Yogi"
person.last = "bear"
person.age = 35
records.Add(person)
records(0).first = "Papa" ' <<== Causes the error
End Sub
Run Code Online (Sandbox Code Playgroud)
Chr*_*way 15
正如其他注释所说,当您引用记录(0)时,您将获得结构的副本,因为它是值类型.你可以做什么(如果你不能把它改成一个类)是这样的:
Dim p As Person = records(0)
p.first = "Papa"
records(0) = p
Run Code Online (Sandbox Code Playgroud)
虽然,我认为使用Class更容易.
| 归档时间: |
|
| 查看次数: |
29400 次 |
| 最近记录: |