引用变量交换问题? A2 = B2;B2 = C;这个操作实际只是交换了A2和B2所指向的对象,你需要交换对象中的内容 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是的,那我要如何交换内容呢?如下操作吗?A2.sum = B2.sum;B2.sum = C.sum;能像C++那样吗?类似指针操作 不可能你总共有两个实例开始时两个实例对应两个引用后来又添加两个引用相当于每个实例各对应两个引用但是指向同一个实例的两个引用之间并无联系--除了指向相同之外如果你可以交换A2和B2就能交换了A1和B1那你想想Test C = A2;A2 = B2;B2 = C;你这段代码还能交换A2和B2么不就死在这里了么注意一下面向对象中对象和实例和对象的引用之间的关系与区别也就是对象实际内容的存储与对象指针的存储之间的关系与区别你就能明白了 是的,确实还有别的逻辑我实现的运用是想实现两个ICON的拖放操作 GUISlot.cs /// <summary> /// 开始拖放操作 /// </summary> private void StartDrag() { GUIManager.Instance.DragOperation = null; GUIManager.Instance.DragOperation = new DragDropOperation(); GUIManager.Instance.DragOperation.BeginDrag(ref _icon); } /// <summary> /// 结束播放操作 /// </summary> private void EndDrag() { if (GUIManager.Instance.DragOperation != null) GUIManager.Instance.DragOperation.EndDrag(ref _icon); }DragDropOperation.cs public GUIIcon BeginDrag(ref GUIIcon sourceIcon) { _srcIcon = sourceIcon; _tepIcon = new GUIIcon(); _tepIcon._imageTexture = sourceIcon._imageTexture; _tepIcon._rectSize = sourceIcon._rectSize; _tepIcon._tileCol = sourceIcon._tileCol; _tepIcon._tileRow = sourceIcon._tileRow; _tepIcon._iconIndex = sourceIcon._iconIndex; IsDrag = true; return _srcIcon; } public GUIIcon EndDrag(ref GUIIcon destinationIcon) { _desIcon = destinationIcon; CompleteDrag(); _tepIcon = null; IsDrag = false; return _desIcon; } private void CompleteDrag() { if (IsDrag == false) return; if (_srcIcon == null) return; if (_desIcon == null) return; Debug.Log("src =" + _srcIcon._iconIndex); Debug.Log("des =" + _desIcon._iconIndex); GUIIcon tempIcon = _desIcon; //_desIcon._iconIndex = _srcIcon._iconIndex; //_srcIcon._iconIndex = tempIcon._iconIndex; _desIcon = _srcIcon; _srcIcon = tempIcon; Debug.Log("srcComplete =" + _srcIcon._iconIndex); Debug.Log("desComplete =" + _desIcon._iconIndex); } 时间格式问题 如何不插入重复的数据? serialport串口采集的问题 Sql2005 連線登陸 编译问题,高手解决一下! Enterprise Library中Data Access Application Block的使用问题 怎么读取txt到datatable中?给个实例吧,谢谢! 请问:在应用程序中如何直接输出信息以控制台程序输出? 求数据库大神帮忙啊, 窗体问题?简单 WPF中怎样遍历窗体下的所有控件 C#中如何对数据库的应用
A2.sum = B2.sum;
B2.sum = C.sum;能像C++那样吗?
类似指针操作
你总共有两个实例
开始时两个实例对应两个引用
后来又添加两个引用
相当于每个实例各对应两个引用
但是指向同一个实例的两个引用之间并无联系--除了指向相同之外如果你可以交换A2和B2就能交换了A1和B1
那你想想Test C = A2;
A2 = B2;
B2 = C;你这段代码还能交换A2和B2么
不就死在这里了么注意一下面向对象中对象和实例和对象的引用之间的关系与区别
也就是对象实际内容的存储与对象指针的存储之间的关系与区别
你就能明白了
/// <summary>
/// 开始拖放操作
/// </summary>
private void StartDrag()
{
GUIManager.Instance.DragOperation = null;
GUIManager.Instance.DragOperation = new DragDropOperation();
GUIManager.Instance.DragOperation.BeginDrag(ref _icon);
} /// <summary>
/// 结束播放操作
/// </summary>
private void EndDrag()
{
if (GUIManager.Instance.DragOperation != null)
GUIManager.Instance.DragOperation.EndDrag(ref _icon);
}
DragDropOperation.cs
public GUIIcon BeginDrag(ref GUIIcon sourceIcon)
{
_srcIcon = sourceIcon; _tepIcon = new GUIIcon();
_tepIcon._imageTexture = sourceIcon._imageTexture;
_tepIcon._rectSize = sourceIcon._rectSize;
_tepIcon._tileCol = sourceIcon._tileCol;
_tepIcon._tileRow = sourceIcon._tileRow;
_tepIcon._iconIndex = sourceIcon._iconIndex; IsDrag = true; return _srcIcon;
} public GUIIcon EndDrag(ref GUIIcon destinationIcon)
{
_desIcon = destinationIcon; CompleteDrag(); _tepIcon = null; IsDrag = false; return _desIcon;
} private void CompleteDrag()
{
if (IsDrag == false)
return; if (_srcIcon == null)
return; if (_desIcon == null)
return; Debug.Log("src =" + _srcIcon._iconIndex);
Debug.Log("des =" + _desIcon._iconIndex); GUIIcon tempIcon = _desIcon; //_desIcon._iconIndex = _srcIcon._iconIndex;
//_srcIcon._iconIndex = tempIcon._iconIndex; _desIcon = _srcIcon;
_srcIcon = tempIcon; Debug.Log("srcComplete =" + _srcIcon._iconIndex);
Debug.Log("desComplete =" + _desIcon._iconIndex);
}