关于带返回值委托函数和委托函数使用引用参数的问题
来源:互联网 发布:java还可以学什么 编辑:程序博客网 时间:2024/05/19 22:03
最近在用C#开发一个界面程序,需要跨线程获取combobox的属性,准备采用委托方式。问题出现了。如果我通过引用参数来获取控件参数,则发现引用变量的值并没有改变。代码如下:
程序代码:
如果我采用第二种策略,也就是通过返回值委托函数获取属性信息,也是无法实现,代码如下。
程序代码:
结果,grade的值同样没有改变。这是什么原因?
如果我在combobox.Invoke(acqComboBoxCallback, combobox, item);之后删去return item;则提示,部分路径无返回值。
这个问题,有点蛋疼。求大神指导!
程序代码:
//委托函数代码delegate void AcqComboBoxCallback(ComboBox combobox, ref String item); AcqComboBoxCallback acqComboBoxCallback; public void AcqComboBox(ComboBox combobox, ref String item)//跨线程控制combobox,设置选定内容 { if (combobox.InvokeRequired) { acqComboBoxCallback = new AcqComboBoxCallback(AcqComboBox); combobox.Invoke(acqComboBoxCallback, combobox, item); } else { item = combobox.SelectedItem.ToString(); }//调用处函数代码CrossOpra control;String grade="2" ;control.AcqComboBox(cBox_Grade, ref grade);
调用之后,发现grade的值还是"2",并没有改变。
求大神指导。如果我采用第二种策略,也就是通过返回值委托函数获取属性信息,也是无法实现,代码如下。
程序代码:
//委托代码 delegate string AcqComboBoxCallback(ComboBox combobox, ref String item); AcqComboBoxCallback acqComboBoxCallback; public string AcqComboBox(ComboBox combobox, ref String item)//跨线程控制combobox,设置选定内容 { if (combobox.InvokeRequired) { acqComboBoxCallback = new AcqComboBoxCallback(AcqComboBox); combobox.Invoke(acqComboBoxCallback, combobox, item); return item; } else { item = combobox.SelectedItem.ToString(); return item; } }//调用代码String grade="2" ;grade = control.AcqComboBox(cBox_Grade, ref grade);
结果,grade的值同样没有改变。这是什么原因?
如果我在combobox.Invoke(acqComboBoxCallback, combobox, item);之后删去return item;则提示,部分路径无返回值。
这个问题,有点蛋疼。求大神指导!
0 0
- 关于带返回值委托函数和委托函数使用引用参数的问题
- 关于函数返回值为引用和指针的问题
- 委托(二):委托做函数参数
- 定义委托、返回值委托、带参委托
- NGUI中 EventDelegate 如何创建一个带参数的函数委托
- C++函数返回引用和值问题
- C#之控制台基础 函数的参数是一个函数,使用委托类型
- 带返回参数函数
- 函数返回值是否使用引用类型的问题:理解引用、返回值
- 8、函数的参数问题、参数传值、return返回值、可变函数和匿名函数
- 使用ParameterizedThreadStart委托向线程函数传送参数
- 使用委托来调用函数
- 关于C++函数思考2(C++函数返回引用和返回非引用的区别)
- c#委托事件和函数
- JavaScript函数-带参数的函数、带返回值的参数
- 关于使用C++11中委托构造函数
- 不带参数的委托与事件
- 带参数的委托与事件
- “Unable to execute dex: Multiple dex files”如何解决?
- 在activity中调用finish后并不是立马跳转
- linux添加开机启动脚本
- word转pdf教程
- Android ViewPagr使用RequestFocus没有效果的解决方法
- 关于带返回值委托函数和委托函数使用引用参数的问题
- 杂记
- ios版本更新
- 深刻理解C#的传值调用和传引用调用
- A星
- Linux下的tar压缩解压缩命令详解
- EditText与TextView共舞setOnKeyListener事件
- UDI-00018 EXPDP RELOAD
- 泛洪法与SMC算法的综合使用