2014-10-14 2 views
-5

저는 이름, 근무 시간, 시간당 요율 및 공제 코드를 사용하여 총 임금, 세금, 공제액 및 순 임금을 계산하는 C# 프로그램을 개발 중입니다. 하나의 특정 부분에 문제가 있습니다. 총액을 내 텍스트 상자에 표시 할 금액으로 반환하는 "GrossPay"기능을 사용할 수 없습니다. 이 함수는 근무 시간 및 시간당 요율을 매개 변수로 취하고이를 곱해서 그 결과를 총소득에 할당 한 다음 반환합니다. C# 구문이 좋지 않아서이 코드를 작성하고 작성하기 위해 인터넷을 리소스로 사용했습니다. 여기이 프로그램을위한 코드 (불완전한)가 있습니다.C#의 함수 값 반환

private void btnCalculate_Click(object sender, EventArgs e) 
    { 
     string employeeName = txtEmployeeName.Text; 
     decimal hoursWorked = Decimal.Parse(txtHoursWorked.Text); 
     decimal hourlyRate = Decimal.Parse(txtHourlyRate.Text); 
     int deductionCode = Int32.Parse(txtDeductionCode.Text); 
     GrossPay(); 
    } 

    private void GrossPay(decimal hoursWorked, decimal hourlyRate) 
    { 
     decimal grossPay = hoursWorked * hourlyRate;  
     grossPay = Decimal.Parse(txtGrossPay.Text); 
    } 
+2

'개인 십진법 GrossPay (...')와 마지막 문장'return grossPay; '를 작성하십시오 –

+0

여기에 질문이 있습니까 – BradleyDotNET

+0

'return (hoursWorked * hourlyRate);'임시 변수에 대한 실제 필요 없음 – Plutonix

답변

3

귀하는이 완료 될 때 그것은 아무것도 반환하지 않음을 의미 void로 설정 반환 형식을 가지고있다. 뭔가를 반환하기 위해서는 반환하는 유형을 선언해야합니다. 그런 다음 함수 코드가 "끝"에 도달하기 전에 무언가를 반환하거나 예외를 throw해야합니다.

이 경우 반환 유형을 decimal으로 설정하고 grossPay 변수 (decimal)를 반환합니다. 함수 매개 변수를 통해 전달하기 때문에 TextBox에서 파싱 할 필요도 없습니다. grossPay 변수에 대한 필요가 없기 때문에

private decimal GrossPay(decimal hoursWorked, decimal hourlyRate) 
{ 
    decimal grossPay = hoursWorked * hourlyRate;  
    return grossPay; 
} 

우리는이 심지어 짧은을 만들 수 있습니다. 이 기능은 어떤 외부 정보에 의존하지 않는 것 때문에

private decimal GrossPay(decimal hoursWorked, decimal hourlyRate) 
{ 
    return hoursWorked * hourlyRate;  
} 

것은, 아마 그래서 우리는 GrossPay()를 호출하기 전에 해당 클래스의 인스턴스가 필요가 없습니다 그것을 정적 기능을하는 것이 좋을 것 기능.

decimal grossPay = MyCalculationUtilities.GrossPay(hoursWorked, hourlyRate); 

을 오히려 이보다 : 그것은 정적 만들기

private static decimal GrossPay(decimal hoursWorked, decimal hourlyRate) 
{ 
    return hoursWorked * hourlyRate;  
} 

는 다음과 같이 호출 할 수 있습니다

MyCalculationUtilities calculator = new MyCalculationUtilities(); 
decimalgrossPay = calculator.GrossPay(hoursWorked, hourlyRate); 

그것의로 마지막으로 제안, 나는 CalculateGrossPayGrossPay에서 변경 제안 함수가 실제로하는 것을 더 잘 설명합니다.