我想问一下下边这段代码哪里错了?
错误提示是无法将类型void隐式转换为float
using System;
using System.Collections.Generic;
using System.Text;namespace 工资计算法
{
    class Program
    {
        static void Main(string[] args)
        {
            float money;
            Console.WriteLine("请输入您的工资数额:");
            float gongZi = float.Parse(Console.ReadLine());
            Console.WriteLine("请输入税率:");
            float taxrate = float.Parse(Console.ReadLine());
            money = GetPay(ref gongZi, ref taxrate,ref money);
            Console.WriteLine("您的税后工资为:" + money);
            Console.ReadLine();
        }
        private static void GetPay(ref float gongZi,ref float taxrate,ref float money)
        {
            if (gongZi <= 1600)
            {
                money = gongZi;
            }
            else
            {
                money = gongZi - (gongZi - 1600) * taxrate;
            }
        }
    }
}

解决方案 »

  1.   

    i'm sorry,i don't konw...
      

  2.   

    money = GetPay(ref gongZi, ref taxrate,ref money); 
    这里出问题,GetPay是没有返回值的。你用了ref的话,直接调用GetPay,money的值就变了。
      

  3.   

     private static void GetPay(ref float gongZi,ref float taxrate,ref float money) 
            { 
                if (gongZi <= 1600) 
                { 
                    money = gongZi; 
                } 
                else 
                { 
                    money = gongZi - (gongZi - 1600) * taxrate; 
                } 
            } 你的返回類型為void ,調用這個後,又賦值給money,明顯就出錯在這里  返回值應該為float
      

  4.   

    或者就如3樓所說,你都用ref了,就調用GetPay()方法后,直接money=gongzi;就行了
      

  5.   

    static void Main(string[] args) 
            { 
                float money; 
                Console.WriteLine("请输入您的工资数额:"); 
                float gongZi = float.Parse(Console.ReadLine()); 
                Console.WriteLine("请输入税率:"); 
                float taxrate = float.Parse(Console.ReadLine()); 
                GetPay(ref gongZi, ref taxrate,ref money); 
                Console.WriteLine("您的税后工资为:" + money); 
                Console.ReadLine(); 
            } 
    这样就行了。
      

  6.   


     static void Main(string[] args) 
            { 
                float money; 
                Console.WriteLine("请输入您的工资数额:"); 
                float gongZi = float.Parse(Console.ReadLine()); 
                Console.WriteLine("请输入税率:"); 
                float taxrate = float.Parse(Console.ReadLine()); 
                money = GetPay(gongZi,  taxrate);
                Console.WriteLine("您的税后工资为:" + money); 
                Console.ReadLine(); 
            } 
            private static float  GetPay(float gongZi, float taxrate) 
            { 
                float money = 0.00; 
                if (gongZi <= 1600) 
                { 
                    money = gongZi; 
                } 
                else 
                { 
                    money = gongZi - (gongZi - 1600) * taxrate; 
                } 
                return money;
            } 
      

  7.   

    void GetPay(ref float gongZi,ref float taxrate,ref float money) 
    money = GetPay(ref gongZi, ref taxrate,ref money); 
    这两个地方有问题。