2014-04-12 3 views
0

다른 변수에 변수를 곱하려고합니다. 값은 다른 클래스에 저장됩니다. 문맥 상, 나는 한 달 동안의 직원 시간에 직원이 지불하는 시간당 요금을 곱하려고 노력하고있다. C# 두 숫자를 같이 곱할 수 없습니다

C#을 Employee 클래스

임 "payHourly"방법에 오류가

class HourlyEmployee : Employee 
{ 
    private HourlyRate m_hourlyRate; //The amount an employee is to be paid per hour 


    /// <summary> 
    ///  Constructor 
    /// </summary> 
    /// <param name="p_employeeID"></param> 
    /// <param name="p_employeeName"></param> 
    /// <param name="p_employeeAge"></param> 
    /// <param name="aRate"></param> 
    public HourlyEmployee(int p_employeeID, string p_employeeName, int p_employeeAge, HourlyRate aRate) 
    { 
     m_employeeID = p_employeeID; 
     m_employeeName = p_employeeName; 
     m_employeeAge = p_employeeAge; 

     m_hourlyRate.setEmployee(this); 
    } 

    public void payHourly(int hoursWorked) 
    { 
     int wage; 
     wage = hoursWorked * m_hourlyRate; 

    } 
} 

HourlyRate 클래스

class HourlyRate 
{ 
    private decimal m_hourlyRate; 
    private HourlyEmployee m_employee; 

    public HourlyRate(decimal p_hourlyRate) 
    { 
     m_hourlyRate = p_hourlyRate; 
    } 

    public void setEmployee(HourlyEmployee aEmployee) 
    { 
     m_employee = aEmployee; 
    } 
} 

사람이 내가 여기에 누락 어떻게 설명 할 수 있습니까?

+0

오류 및 줄은 무엇입니까? –

+0

int를 "HourlyRate"클래스/구조체와 곱할 수 없습니다. – attila

답변

1

wage = hoursWorked * m_hourlyRate; ??

m_hourlyRate가 개체 인스턴스입니다.

wage = hoursWorked * m_hourlyRate.m_hourlyRate; 

객체의 내부 속성이 혼란과 동일한 개체 이름을 사용 :

당신은 사용해야합니다. Change private HourlyRate m_hourlyRate 다른 것에.

편집 : 또한

변경 : private decimal m_hourlyRate; 액세스하기 위해 public decimal m_hourlyRate { set; get; } 한다.

또는 다음

class HourlyRate 
{ 
    private decimal m_hourlyRate; 
    private HourlyEmployee m_employee; 

    public HourlyRate(decimal p_hourlyRate) 
    { 
     m_hourlyRate = p_hourlyRate; 
    } 

    public void setEmployee(HourlyEmployee aEmployee) 
    { 
     m_employee = aEmployee; 
    } 

    public decimal GetHourlyRate() 
    { 
     return m_hourlyRate; 
    } 
} 

사용 :

wage = hoursWorked * m_hourlyRate.GetHourlyRate(); 
+0

첫 번째 오류가 수정되었지만 이제는 보호 수준으로 인해 액세스 할 수 없습니다. 개인 속성입니다. 보호해야합니까? – KyleHodgetts

+0

편집 됨, getter를 사용합니다. – user3185569

+0

게터가 작동하지 않았지만 첫 번째 오류를 고치기 위해 고마워했습니다 – KyleHodgetts

0

당신이 정수이 임금 = m_horulyRate.m_hourlyRate * hoursWorked을 사용했습니다 와 m_hourlyRate을 곱 수 없습니다;

+0

나는 그저 눈치 챘다. 나는 임금을 10 진수로 바꿨다. :) – KyleHodgetts

관련 문제