我猜你的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所使用…?