错误1非静态字段、方法或属性需要对象引用';LCB.Code.cuentaBanco.agregar(浮动)
本文关键字:Code LCB cuentaBanco agregar 浮动 对象引用 字段 静态 方法 属性 错误 | 更新日期: 2023-09-27 18:19:29
namespace LCB.Code
{
public class cuentaBanco
{
string nombre;
float cuenta;
public cuentaBanco(string nombre, float cuenta)
{
this.nombre = nombre;
this.cuenta = cuenta;
}
public void agregar(float incrementar)
{
this.cuenta += incrementar;
}
public void remover(float remover)
{
if (remover >this.cuenta)
{
this.cuenta = 0;
}
else
{
this.cuenta -= remover;
}
}
}
}
using LCB.Code;
namespace ACB
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = cuentaBanco.agregar(float.Parse(textBox1.Text)).ToString();
}
}
}
需要一个对象的实例这意味着如果没有声明和初始化类的实例,就不能调用该类的NON STATIC方法。所以你有两个选择。使agregar方法为静态方法或初始化cuentaBanco类的一个实例。我真的建议远离静态方法,除非你有明确的理由在你的类的许多实例之间提供方法,而且在你的代码中,我看不出有任何理由使用静态方法。所以我选择了另一种选择
制作cuentaBanco类的实例。。。
private void button1_Click(object sender, EventArgs e)
{
cuentaBanco cuenta = new cuentaBanco("ABC", 0f);
label1.Text = cuenta.agregar(float.Parse(textBox1.Text)).ToString();
}
但现在我们有另一个问题。agregar
方法被声明为void。这意味着它不会返回任何内容。因此,不能将ToString()应用于void返回方法
您还需要更改agregar
方法以返回计算值
public class cuentaBanco
{
....
public float agregar(float incrementar)
{
this.cuenta += incrementar;
return this.cuenta;
}
....
}
同样,看看你的类,你似乎想要一个对象来保持你的计数,并为每次点击按钮增加内部数字。在这种情况下,你想为你的计数保留一个全局对象,并在初始化窗体时声明和初始化一个cuentaBanco类型的类级变量。现在你可以使用该变量使你的计数
public partial class Form1 : Form
{
private cuentaBanco cuenta;
public Form1()
{
InitializeComponent();
cuenta = new cuentaBanco("ABC", 0f);
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = cuenta.agregar(float.Parse(textBox1.Text)).ToString();
}
}
您应该将方法agregar
设置为静态。同样,在使agregar
为静态之后,您也应该使cuenta
为静态。此外,agregar
方法是void
,您不能将其设置为label1.Text
,您应该将其返回类型更改为float
:
static float _cuenta;
public static float agregar(float incrementar)
{
_cuenta += incrementar;
return _cuenta;
}
同样在cuentaBanco
方法中,删除this
关键字并设置一个有效名称,而不是像_cuenta
:那样的cuenta
public cuentaBanco(string nombre, float cuenta)
{
this.nombre = nombre;
_cuenta = cuenta;
}