[問題] ref跟指標

看板C_Sharp (C#)作者 (黑旋風)時間7年前 (2018/03/20 10:43), 7年前編輯推噓1(1013)
留言14則, 4人參與, 7年前最新討論串1/2 (看更多)
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#有沒有法子做到類似指標的動作, 目前想不到在函數內將資料設定進去的方法 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.67.17 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1521513793.A.1E5.html

03/20 10:49, 7年前 , 1F

03/20 11:06, 7年前 , 2F
謝謝提供...不過完全不能用..無法用到指標陣列上
03/20 11:06, 2F

03/20 11:08, 7年前 , 3F
ref就已經是pass by ref了,要在函式內設定資料沒問題啊
03/20 11:08, 3F

03/20 11:09, 7年前 , 4F
看你的程式你的問題是想把data用array的方式去操作,但是
03/20 11:09, 4F

03/20 11:09, 7年前 , 5F
CCC是struct,你設給loc_data時就是copy by value了,之後
03/20 11:09, 5F

03/20 11:09, 7年前 , 6F
你怎麼改loc_data都沒用吧? 不如先說清楚你是要做什麼
03/20 11:09, 6F
public static void func(ref CCC data,int a) { AAA[] *loc_data= { &data.C1,&data.C2,&data.C3,&data.C4,&data.C5 }; if(a<5 && a>=0) { loc_data[a]->BBB="test1"; } } 原本是要寫成像這樣.... ※ 編輯: justinj (59.127.67.17), 03/20/2018 11:16:56

03/20 11:44, 7年前 , 7F
如果你可以改CCC,一開始就在CCC裡面放array就好了吧
03/20 11:44, 7F

03/20 11:46, 7年前 , 8F
沒法子改CCC...CCC實際上全部都是機器名
03/20 11:46, 8F

03/20 11:48, 7年前 , 9F
謝謝幫忙..我最後是拆成2個函數處理..原本它的寫法程式碼
03/20 11:48, 9F

03/20 11:48, 7年前 , 10F
太長
03/20 11:48, 10F

03/20 14:14, 7年前 , 11F
不確定你最後是用什麼改法,如果C1, C2...不是很多的話我會
03/20 14:14, 11F

03/20 14:55, 7年前 , 12F
直接switch a來選Cx傳到另一個改AAA內容的函數
03/20 14:55, 12F

03/20 16:58, 7年前 , 13F
一堆if+func
03/20 16:58, 13F

03/24 00:48, 7年前 , 14F
關鍵字:event delegate
03/24 00:48, 14F
文章代碼(AID): #1Qi7L17b (C_Sharp)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
1
14
文章代碼(AID): #1Qi7L17b (C_Sharp)