ref是对于值类型来说的
对于类,本来他就是引用类型的,所以你不需要这样,
在函数中改变作为参数的类中的内容是会改变原来的那个类型
对于类,本来他就是引用类型的,所以你不需要这样,
在函数中改变作为参数的类中的内容是会改变原来的那个类型
解决方案 »
- DataGridView 合并单元格 重绘 显示混乱
- 散分 vs2008 安装问题
- 蓝牙连线检查问题
- 有一个小问题问一下大家??
- VSS2005在VS2005下出现的奇怪问题,两天了都没搞定,不能工作了...
- 请问,.net 中 类库是有什么语言编写的啊?
- datagrid超链接的问题
- 请问c#如何将word转换成flash
- 请问SharpDevelop是什么东东,除了免费,还有什么优点呢?!
- 关于将网页内容粘贴进控件的问题,求助。
- 大家好:我想用windows.Timers.Timer类定义一个timer对象,然后每隔一秒钟让程序扫描一次数据库,请问怎么写?我这样写,为什么不对?千万
- 创建窗口句柄出错!!!是怎么回来,指点一下迷津
{
dvArt = (DataView)Cache["dvArt"];
}
else
{
dvArt = CreateDataSet().Tables[0].DefaultView;
Cache["dvArt"] = dvArt;
} RenumberRowsForPaging(ref dvArt);
引用类型也是可以使用ref,
如:
class CPoint
{
public int x,y;
}
void ChangePoint(ref CPoint p)
{
p=new CPoint();
}
如果这样调用
CPoint p=new CPoint();
p.x=100;
ChangePoint(p);//重新生成了CPoint对象
Console.WriteLine(p.x);//输出0;
是不是数值型:
yourobj.GetType().IsClass()
至于楼主的那个函数为什么需要ref??难道你想要生成一个新的Sample.frmReportShow.Cell对象?
还有Sample.frmReportShow.Cell这是一个属性??如果是一个属性那就肯定不可以通过ref传递,因为ref 一个类的话是传递一个引用的引用,你的那个属性Get的时候是返回一个引用,这个引用是临时的,而你要把这个引用的引用传给一个函数。
如果你懂得c的话,把上面的“引用”替换成指针可能有助于你的理解
因为在别的界面代码中调用此近件才出现上面的代码
Sample.frmReportShow.Cell,到底是什么?控件,什么类型的控件.
何处调用,如何调用的.看起来好像是在调用非托管代码.如果是的话,参考下面的帮助.
ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpconcopyingpinning.htm用"封送处理"在索引中找,也可以找到一些帮助.如果可能,贴一段代码出来,这样有助于解决问题.