为什么这个C#程序使用"函数"不工作?

时间:2014-10-29 15:20:04

标签: c# function c#-4.0 sharpdevelop

我做了一个小的C#程序,它接受一个带有一些数字(浮点数)的数组,并告诉数组中有多少数字不在区间内a a,b] 我成功了。这是程序:

using System;

namespace Exercice_1
{
    class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("a = ?");
            float a = float.Parse(Console.ReadLine());

            Console.WriteLine("b = ?");
            float b = float.Parse(Console.ReadLine());

            float[] t = new float[50];
            for(int i=0; i<t.Length; i++)
            {
                 t[i]=4*i;
            }

            int k = 0;
            for(int i=0; i<t.Length; i++)
            {
                if(t[i] <= a || t[i] > b)
                {
                    k++;
                }
            }

            Console.Write(""+k);
            Console.ReadKey(true);
        }
    }
}

但后来我想尝试制作相同的节目,但使用&#34;功能&#34; 但我没有成功。这是程序:

using System;

namespace Exercice_2
{
    class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("a = ?");
            float a = float.Parse(Console.ReadLine());

            Console.WriteLine("b = ?");
            float b = float.Parse(Console.ReadLine());

            float[] t = new float[50];
            for(int i=0; i<t.Length; i++)
            {
                t[i]=4*i;
            }

            Console.Write(""+count(float[] t, float a, float b));
            Console.ReadKey(true);
        }

        static int count(float[] u, float x, float y)
        {
            int k = 0;
            for(int i=0; i<u.Length; i++)
            {
                if(u[i] <= x || u[i] > y)
                {
                    k++;
                }
            }

            return k;
         }
    }
}

我也试过把这个功能放在&#34; class Program&#34;之外,但它也没有用。

这是我第一次尝试使用&#34;功能&#34;所以我可能犯了一些明显的初学者错误......

以下是所有&#34;错误&#34; SharpDevelop指出的是:http://oi62.tinypic.com/dnydsk.jpg

2 个答案:

答案 0 :(得分:3)

Console.Write(""+count(float[] t, float a, float b));

应该是

Console.Write(""+count(t, a, b));

调用方法时,不需要指定在方法签名

中声明的类型
Signiture: count(float[] u, float x, float y)
To Call: count(t, a, b)

答案 1 :(得分:2)

这一行:

Console.Write(""+count(float[] t, float a, float b));

需要:

Console.Write(count(t, a, b));

调用函数时,传递变量。类型已经修复。