private void btnItemPWMInc_Click(object sender, EventArgs e)
{
bool isPWMOverFlow = IsPWMOverFlow();
if (!isPWMOverFlow)
{
int PWM = Convert.ToInt32(txtBoxItemPWMPercentage.ControlText);
PWM += 5;
if (PWM > 100)
PWM = 100;
txtBoxItemPWMPercentage.ControlText = Convert.ToString(PWM);
}
} private void btnItemDec_Click(object sender, EventArgs e)
{
bool isPWMOverFlow = IsPWMOverFlow();
if (!isPWMOverFlow)
{
int PWM = Convert.ToInt32(txtBoxItemPWMPercentage.ControlText);
PWM -= 5;
if (PWM < 0)
PWM = 0;
txtBoxItemPWMPercentage.ControlText = Convert.ToString(PWM);
}
}
private bool IsPWMOverFlow()
{
bool isPWMOverFlow=true;
int PWM = Convert.ToInt32(txtBoxItemPWMPercentage.ControlText);
if (PWM >= 0 || PWM <= 100)
isPWMOverFlow = false;
else if (PWM < 0)
{
PWM = 0;
isPWMOverFlow = true;
}
else if (PWM > 100)
{
PWM = 100;
isPWMOverFlow = true;
}
return isPWMOverFlow;
}
如此程序正常无误但是每个子程序里都用到了PWM变量,为了简化,我把每个函数的变量声明都去掉
并在private void btnItemPWMInc_Click(object sender, EventArgs e)上面加一行
private int PWM = Convert.ToInt32(txtBoxItemPWMPercentage.ControlText);
但是编译出错了,提示:A field initializer cannot reference the non-static field, method, or property
如图所示这是为何呢?我在定义成private static int PWM 也没用啊
不能从txtBoxItemPWMPercentage对象的ControlText来初始化此对象。
因为此时txtBoxItemPWMPercentage是null.