[問題] ref跟指標

作者: justinj (黑旋風)   2018-03-20 10:43:05
public struct AAA
{
public string BBB;
public string BBB2;
public string BBB3;
public string BBB4;
}
public struct CCC
{
public AAA C1;
public AAA C2;
public AAA C3;
public AAA C4;
public AAA C5;
}
public static void func(ref CCC data,int a)
{
AAA[] loc_data=new AAA[]
{
data.C1,data.C2,data.C3,data.C4,data.C5
};
if(a<5 && a>=0)
{
loc_data[a].BBB="test1";
}
}
===============================================
請問一下C#有沒有法子做到類似指標的動作,
目前想不到在函數內將資料設定進去的方法
作者: YahooTaiwan (超可愛南西我老婆)   2018-03-20 10:49:00
作者: justinj (黑旋風)   2018-03-20 11:06:00
謝謝提供...不過完全不能用..無法用到指標陣列上
作者: ssccg (23)   2018-03-20 11:08:00
ref就已經是pass by ref了,要在函式內設定資料沒問題啊看你的程式你的問題是想把data用array的方式去操作,但是CCC是struct,你設給loc_data時就是copy by value了,之後你怎麼改loc_data都沒用吧? 不如先說清楚你是要做什麼如果你可以改CCC,一開始就在CCC裡面放array就好了吧
作者: justinj (黑旋風)   2018-03-20 11:46:00
沒法子改CCC...CCC實際上全部都是機器名謝謝幫忙..我最後是拆成2個函數處理..原本它的寫法程式碼太長
作者: ssccg (23)   2018-03-20 14:14:00
不確定你最後是用什麼改法,如果C1, C2...不是很多的話我會直接switch a來選Cx傳到另一個改AAA內容的函數
作者: justinj (黑旋風)   2018-03-20 16:58:00
一堆if+func
作者: yzfr6 (扮關二哥!)   2018-03-24 00:48:00
關鍵字:event delegate

Links booklink

Contact Us: admin [ a t ] ucptt.com