虽然说自己用一个实例是可以尝试结果的,但是还是想问问大神们,list的问题。
定义list<A>,A是引用类型比如说是如下一个class
class B
{}class A
{
public B b;
}
那new了一个list = lista后对lista进行了如下操作:1.如果a是局部变量,是否意味着在退出本function的时候,lista中的该元素实际上用的就是原本局部变量a中占用的内存,只是此时a这个引用指针被删除了?function()
{
a = new class A();
....关于a的一些赋值
lista.add(a);
}
2.如果将list中该元素remove,是否意味着即使是在function内部,a也无法使用了?还是说只是lista放弃了对该元素内存的指向,而a还是指向该段数据且数据不变,依旧可以调用的?
function()
{
a = new class A();
....关于a的一些赋值
lista.add(a);
lista.remove(a);}
3.同样,对于list的clear方法,是否意味着a在function中也已经无法使用了?还是依旧能够使用?并且相关数值没有变化?
function()
{
a = new class A();
....关于a的一些赋值
lista.add(a);
lista.clear();}
以上到底是个什么原理捏?大神们 谢谢啦!~~listclass
定义list<A>,A是引用类型比如说是如下一个class
class B
{}class A
{
public B b;
}
那new了一个list = lista后对lista进行了如下操作:1.如果a是局部变量,是否意味着在退出本function的时候,lista中的该元素实际上用的就是原本局部变量a中占用的内存,只是此时a这个引用指针被删除了?function()
{
a = new class A();
....关于a的一些赋值
lista.add(a);
}
2.如果将list中该元素remove,是否意味着即使是在function内部,a也无法使用了?还是说只是lista放弃了对该元素内存的指向,而a还是指向该段数据且数据不变,依旧可以调用的?
function()
{
a = new class A();
....关于a的一些赋值
lista.add(a);
lista.remove(a);}
3.同样,对于list的clear方法,是否意味着a在function中也已经无法使用了?还是依旧能够使用?并且相关数值没有变化?
function()
{
a = new class A();
....关于a的一些赋值
lista.add(a);
lista.clear();}
以上到底是个什么原理捏?大神们 谢谢啦!~~listclass
解决方案 »
- 刚接触c#的winform应用程序,需要学习代码的编写还是就拖拖控件吗?
- 求C#登录窗口验证
- spring.net 实现缓存caching
- 异常信息为:无法找到资源程序集的问题
- C#面试题:"如果让系统把实体类的属性自动赋值给界面上的控件,你有什么方法?"
- 如何在listbox中显示多个字段?
- 急,急!!c# 如何调用Word的AddOLEControl()方法插入一个控件!
- 现在我的窗体有60个textBox,每个都只能输入数字,那么要写60个private void textBox3_KeyDown(object sender, System.Windows.Forms.Key
- 有没人用过DataGrid+RadioButton
- 请教如何在word文档添加标题,段落格式,段落内容,急
- Winform类似淘宝那种成行展示图片并可翻页的效果怎么实现?给个思路
- c# winform 中键盘操作选中combobox中的内容
list(a),还是可以用a来操作数据,a 的改变也是直接影响到list里面的a
List<ClassA> function()
{
ClassA a = new ClassA();
List<ClassA> list = new List<ClassA>();
list.Add(a);
return list;
}退出后,仍然可以取出a操作。还是要看所谓的“生命周期”的
2.3一样的,就好比一个鸡蛋放在盒子里,又取出来,这个鸡蛋还是在的。但是如果把盒子都扔到垃圾桶了,鸡蛋也就没了。