Re: [問題] 關於方法與Form1 Load的問題

看板C_Sharp (C#)作者 (free myself)時間6年前 (2018/12/08 01:08), 編輯推噓1(105)
留言6則, 2人參與, 6年前最新討論串2/2 (看更多)
我猜你的code是長這樣... public partial class Form1 : From { //int[] mCPlts; //改成在這裡宣告 public Fomr1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { int compo = 255; int[] mCPlts = new int[compo+1]; //在這邊宣告,只能在這個methods裡面用 //mCPlts= new int[compo+1]; //配合上面的宣告,改成這樣 for (int i = 0; i<=compo; i++) mCPlts[i]=i; } private void FastBmpToBmp64(略...) { //DoSomething Trans8GrayScale(paletteTest,mCPlts); //Do something else } } 這是基本的變數作用域,不一定要最新版的書, 但建議找本入門書讀讀,基本概念都是一樣的。 ※ 引述《b8002012 (b8002012)》之銘言: : 各位前輩好 : 小弟在c#剛學不到一個禮拜,遇到一個問題 : 首先我在 : private void Form1_Load(object sender, EventArgs e) : 中定義一個陣列以及撰寫了一個迴圈。 : int compo = 255; : int[] mCPlts = new int[compo+1]; : for (int i = 0; i <= compo; i++) : mCPlts[i] = i; : 接著在別的button中撰寫一個方法 : private void FastBmpToBmp64(ref byte[] buf, string strFileName, ref int width, : ref int height, string PicPath) : 其中這個方法裡面另外撰寫一個方法 : Trans8GrayScale(paletteTest, mCPlts); : 問題就是他說我的mCPlts不在我的內容內,但是我已經在Form1_Load運送完了, : 我是有一個猜測,因為Form1_Load是private,在裡面運算完的變數不可提供給其他的butt : on所使用…? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.224.99.174 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1544202482.A.628.html

12/08 12:53, 6年前 , 1F
l大:我看程式的class裡的“int[] mCPlts; //改成在這
12/08 12:53, 1F

12/08 12:53, 6年前 , 2F
裡宣告”這行程式,只要修改成在那宣告就能解決了嗎?因
12/08 12:53, 2F

12/08 12:53, 6年前 , 3F
為在load方法裡面又重新再宣告一次,這樣不會變成又只
12/08 12:53, 3F

12/08 12:53, 6年前 , 4F
能在load方法裡面使用嗎
12/08 12:53, 4F

12/08 14:32, 6年前 , 5F
load中是改成 mCPlts=...而不是 int[] mCPlts=...
12/08 14:32, 5F

12/08 15:36, 6年前 , 6F
l大,我懂了!真的很謝謝您
12/08 15:36, 6F
文章代碼(AID): #1S2gZoOe (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1S2gZoOe (C_Sharp)