C# 功能赢得';不返回任何值
我有一个我认为很容易解决的问题,但因为我是个笨蛋,我不明白我做错了什么。我有两个函数:C# 功能赢得';不返回任何值,c#,visual-studio,function,C#,Visual Studio,Function,我有一个我认为很容易解决的问题,但因为我是个笨蛋,我不明白我做错了什么。我有两个函数:addValues()和showMessage()。我的问题在addValues()中。我有两个MessageBox,它们精确地显示了它们应该显示的内容,但是在showMessage()函数中,没有收到值,它总是告诉我日期和dias.Count为0。我做错了什么?谢谢大家! 表格1: public List<Despesas> dias = new List<Despesas>();
addValues()
和showMessage()
。我的问题在addValues()
中。我有两个MessageBox
,它们精确地显示了它们应该显示的内容,但是在showMessage()
函数中,没有收到值,它总是告诉我日期和dias.Count
为0。我做错了什么?谢谢大家!
表格1:
public List<Despesas> dias = new List<Despesas>();
public struct Despesas
{
public double transportes;
public double alimentacao;
public double vestuario;
public double agua;
public double luz;
public double educacao;
}
public List dias=new List();
公共结构绝望
{
公共两用交通工具;
公共双食品;
公共双重投资;
公共双agua;
公共双luz;
公共双可可;
}
关于班级管理:
class management : Form1
{
int day=0;
public double addValues(double transportes, double alimentacao)
{
Despesas dia = new Despesas();
try
{
dia.transportes = transportes;
dia.agua = agua;
dias.Add(dia);
}
catch
{
MessageBox.Show("Error", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
MessageBox.Show("Count " + dias.Count);
day++;
MessageBox.Show("" + day);
return day;
}
public void showMessage()
{
MessageBox.Show("Day " + day);
MessageBox.Show("Count: " " + dias.Count);
for (int i = 0; i < day; i++)
{
MessageBox.Show("Agua: " + dias[i].agua + "\nTransportes: " + dias[i].transportes);
}
}
班级管理:表格1
{
整日=0;
公共双附加值(双运输、双食品)
{
Despesas dia=新Despesas();
尝试
{
直径运输=运输;
直径agua=agua;
增加直径(直径);
}
抓住
{
MessageBox.Show(“Error”,“”,MessageBoxButtons.OK,MessageBoxIcon.Error);
}
MessageBox.Show(“计数”+dias.Count);
day++;
MessageBox.Show(“+”天);
回归日;
}
公共void showMessage()
{
MessageBox.Show(“天”+天);
MessageBox.Show(“计数:”+dias.Count);
对于(int i=0;i
在评论中,您提到您实际上有两个管理类的实例
对对象的一个实例所做的更改不会传播到该对象的其他实例(除非它是在静态
成员上修改的,但这有点不同)
即使像代码一样修改基类成员,这也是正确的。这是因为派生类的实例化也会实例化一个新的基类对象
解决方案是只使用一个管理
对象实例,并根据需要传递它。您可以像其他类型一样执行此操作:
public void Foo(management myClass)
{
...
}
其他一些注意事项:
management
对于一个类来说不是一个很好的名称,因为它不具有很强的描述性。而且,C#中的类名应该是PascalCase,所以它应该是management
- 继承可能不是
management
和Form1
之间的正确关系。management
真的是“类型”还是“是”Form1
你确定调用了addValues
吗?错误似乎不在提供的代码中是的,我确定,因为调用时会显示MessageBox。你确定调用了addValues吗?我看不到消息框的定义与调用的addValues
不同。如果在该f中设置断点Uunction,你点击了吗?看来这些是globalagua
和dias
但我该怎么做?你能解释一下吗?我想是的。你能澄清一下是什么让你困惑吗?我不明白什么是公共的void Foo(管理myClass)是否…@MiguelPT只是一个接受对象类型参数的示例函数。也许我可以解释一下方法/参数是如何工作的?