2014-12-30 2 views
0

저는 문제가 해결하기가 쉽지만 저는 C# noob 이후로 내가 잘못하고있는 것을 이해할 수 없습니다. 두 가지 기능이 있습니다 : addValues()showMessage(). 내 문제는 addValues()입니다. 두 개의 MessageBox이 정확히 무엇을 보여야하는지 보여 주지만, showMessage() 함수에서는 값이 수신되지 않고 언제나 그 날과 dias.Count이 0이라고 나에게 알려줍니다. 무엇을 잘못하고 있습니까? 고맙습니다! Form1에함수가 아무런 값도 반환하지 않습니다.

:

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; 
    } 

클래스 관리에 : 코멘트에

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); 
    } 
} 
+0

'addValues'이 (가) 호출되고 있습니까? 버그가 제공된 코드에 나타나지 않습니다. – BradleyDotNET

+0

예, MessageBox가 호출 될 때 표시되므로 확신합니다. – MiguelPT

+0

addValues가 호출 되었습니까? agua의 정의가 보이지 않습니다 –

답변

2

, 당신은 당신이 실제로 management 클래스의 인스턴스가 언급.

개체의 한 인스턴스에 대한 변경 사항은 해당 개체의 다른 인스턴스로 전파되지 않습니다 (단, static 구성원에서 수정되었지만 조금 다릅니다).

코드는 기본 클래스 멤버를 수정하더라도 마찬가지입니다. 이는 파생 클래스 의 인스턴스화도이 새 기본 클래스 객체를 인스턴스화하기 때문입니다.

해결 방법은 하나의 management 개체 인스턴스를 사용하고 필요에 따라 전달하는 것입니다. 당신은 다른 어떤 유형처럼 이렇게 :

public void Foo(management myClass) 
{ 
    ... 
} 

다른 몇 가지주의 사항 :

  • management이 매우 설명하지로, 클래스를위한 아주 좋은 이름이 아닙니다. 또한 C#의 클래스 이름은 PascalCase 여야하므로 Management
  • managementForm1 사이의 상속 관계가 맞지 않을 것입니다. management은 실제로 "유형"또는 "is"입니까 Form1입니까?
+0

하지만 어떻게해야합니까? 설명해 주시겠습니까? – MiguelPT

+1

내가 그랬다고 생각해. 어떤 부분이 당신을 혼란스럽게하는지 명확히 할 수 있습니까? – BradleyDotNET

+0

공개 무효 Foo (management myClass)가 무엇을하는지 이해하지 못합니다 ... – MiguelPT

관련 문제