C#里怎么得到List里其中一个元素的引用

自己封装了一个socket类,定义了一个List<MySocket>sockList,然后在程序里new新的对象并放到list里边sockList.Add(sock)。现... 自己封装了一个socket类,定义了一个List<MySocket> sockList,然后在程序里new新的对象并放到list里边 sockList.Add(sock)。现在的问题是我需要启动新的线程,线程里需要从list里取出其中的一个元素,通过ref传递引用。通过foreach循环内会提示迭代器变量无法传递ref参数。请问要怎么样做呢?没多少分,只能来10分悬赏了。
to lucika_china:谢谢你的回答。你说的这个方式我也试了,比如我传进去 fun(ref sockList[pos]),会报属性或索引器不得作为out或ref参数传递。

to Rungroo:以前确实是做C/C++的,用C#工作日也就2周不到吧。我封装的类似是个socket复用的功能,封装类除了有socket成员外,还加的有个bool变量,表明该socket是否被占用。开始是false,这个对象在主线程生成并放到一个List里的保存,作为函数的一个参数起线程,线程结束需要设置原对象的这个bool变量。这样就只能传引用了。

快接近真相了,再次求知道。
展开
 我来答
lucika_china
2010-10-16 · 超过13用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:0
展开全部
foreach循环中是不允许在递归中修改循环变量的。
可以换一种方式,for(int pos=0;pos<sockList.Count;pos++){sockList[pos]},
即使用索引访问。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-10-25
展开全部
你以前应该有C/C++开发的经验吧,在C#中,像Socket这样的类对象本身已经是引用类型了,不需要显式注明ref,直接foreach(Socket s in sockList)就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友be0657f
2010-10-16 · TA获得超过479个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:319万
展开全部
你以前应该有C/C++开发的经验吧,在C#中,像Socket这样的类对象本身已经是引用类型了,不需要显式注明ref,直接foreach(Socket s in sockList)就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shine戚七七
2015-05-18 · TA获得超过4.7万个赞
知道大有可为答主
回答量:2万
采纳率:75%
帮助的人:2718万
展开全部
foreach循环中是不允许在递归中修改循环变量的。
可以换一种方式,for(int pos=0;pos<sockList.Count;pos++){sockList[pos]},
即使用索引访问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冒险岛百科网
2019-09-24
知道答主
回答量:5
采纳率:0%
帮助的人:4668
展开全部
一个个答非所问 比如一个结构体 我怎么样才能 实现类似SomeFuc(ref myStructs[i])这样的功能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式