zl程序教程

您现在的位置是:首页 >  后端

当前栏目

c#Listfind()方法返回值的问题说明(返回结果为对象的指针)

c#方法对象 问题 说明 结果 返回 指针
2023-06-13 09:15:16 时间

C#中List<T>中泛型T如果是一个对象的话,则利用Find函数返回的将是这个对象的指针,对其返回对象的属性进行操作,也会影响list中相应元素对象的值。验证如下:
1.新建一个Class1类,其含有两个姓名和分数两个属性:

复制代码代码如下:

<SPANstyle="FONT-SIZE:18px">   publicclassClass1
   {
       publicstringname{get;set;}
       publicintscore{get;set;}

   }</SPAN>


2.在窗口类中写入如下代码,在button1_Click的事件中的右括号处设置断点。
复制代码代码如下:

<SPANstyle="FONT-SIZE:18px">       publicForm1()
       {
           InitializeComponent();
       }
       Class1a=newClass1();
       Class1b=newClass1();
       List<Class1>l=newList<Class1>();

       privatevoidbutton1_Click(objectsender,EventArgse)
       {
           stringname="小明";
           Class1c=l.Find(delegate(Class1p){return(p.name.Equals(name));});
           c.score=100;

       }

       privatevoidForm1_Load(objectsender,EventArgse)
       {
           a.name="小明";
           a.score=90;
           l.Add(a);


           b.name="小红";
           b.score=99;
           l.Add(b);
       }</SPAN>


3.运行结果如下:

由图可知,想button事件中对对象c的改变,使list中相应对象也发生了改变。故其返回值为对象的引用