作者lonniekao (free myself)
看板C_Sharp
标题Re: [问题] 关於方法与Form1 Load的问题
时间Sat Dec 8 01:07:59 2018
我猜你的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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1544202482.A.628.html
1F:推 b8002012: l大:我看程式的class里的“int[] mCPlts; //改成在这 12/08 12:53
2F:→ b8002012: 里宣告”这行程式,只要修改成在那宣告就能解决了吗?因 12/08 12:53
3F:→ b8002012: 为在load方法里面又重新再宣告一次,这样不会变成又只 12/08 12:53
4F:→ b8002012: 能在load方法里面使用吗 12/08 12:53
5F:→ lonniekao: load中是改成 mCPlts=...而不是 int[] mCPlts=... 12/08 14:32
6F:→ b8002012: l大,我懂了!真的很谢谢您 12/08 15:36