List<BillOfLading> bolList = new List<BillOfLading>();
protected void Button1_Click(object sender, EventArgs e)
{
BillOfLading newBol = new BillOfLading("AXSY1414114");
bolList.Add(newBol);
newBol.BillOfLadingNumber = "CRXY99991231";
bolList.Add(newBol);
}
Run Code Online (Sandbox Code Playgroud)
我期待这bolList将容纳两个不同的对象或值,但似乎这个简单的代码不起作用.有任何想法吗?
结果Immediates:
bolList
Count = 2
[0]: {kTracker.BillOfLading}
[1]: {kTracker.BillOfLading}
bolList[0]
{kTracker.BillOfLading}
_billOfLadingNumber: "CRXY99991231"
BillOfLadingNumber: "CRXY99991231"
bolList[1]
{kTracker.BillOfLading}
_billOfLadingNumber: "CRXY99991231"
BillOfLadingNumber: "CRXY99991231"
Fly*_*179 10
您只创建了一个对象,并将其添加了两次.在第一次和第二次添加之间修改该对象的事实是无关紧要的; 该列表包含对您添加的对象的引用,因此稍后将对其进行更改.
您需要更换newBol.BillOfLadingNumber = "..";与newBol = new BillOfLading("..");
Flynn1179的答案是正确的,但要回答你的评论 - 你不需要为每个对象提供不同的变量.你可以做:
protected void Button1_Click(object sender, EventArgs e)
{
BillOfLading newBol = new BillOfLading("AXSY1414114");
bolList.Add(newBol);
newBol = new BillOfLading("CRXY99991231");
bolList.Add(newBol);
}
Run Code Online (Sandbox Code Playgroud)
要理解的重要一点是,您没有将变量添加到列表中,也没有将对象添加到列表中......您将变量的当前值添加到列表中.该当前值是对实例的引用BillOfLading.在上面的代码中,列表最终引用了两个不同的对象.
| 归档时间: |
|
| 查看次数: |
15746 次 |
| 最近记录: |