黑马程序员技术交流社区

标题: 函数无法调用 [打印本页]

作者: 万大述    时间: 2013-6-25 16:35
标题: 函数无法调用
想得到一个数从1至该数的累加值,代码如下,请问出了神马问题?
static void Main(string[] args)
        {
            int test = 17,sum=0;//变量定义。
            /*调用Sum方法,调用时传入一个正整数的值,并用
             一个变量接收该方法返回的值。*/
            sum = Sum(test);
            Console.WriteLine(test+"从1至该数的累加值为"+sum);
            Console.ReadKey();
        }
        /// <summary>
        /// 求一个正整数从1至该数的累加值。
        /// </summary>
        /// <param name="i">正整数的值</param>
        /// <returns>累加值</returns>
        public int Sum(int i)
        {
            int sum=0,j=0;
            for (j = 1; j <= i; j++)
            {
                sum += j;
            }
            return sum;
        }

作者: aa26963    时间: 2013-6-25 19:08
把sum方法设为静态方法,加static。
作者: 曾大鹏    时间: 2013-6-25 21:54
要静态的才能调用 加个static
public static int sum()
作者: 吕柳根    时间: 2013-6-25 23:30
public static int Sum(int i){:soso_e113:}终于遇到个比我菜的人了{:soso_e113:}
作者: 杞文明    时间: 2013-6-26 01:34
吕柳根 发表于 2013-6-25 23:30
public static int Sum(int i)终于遇到个比我菜的人了

看你得瑟
作者: 万大述    时间: 2013-6-26 09:51
{:soso_e113:} 多谢各位朋友指点~
作者: 菜鸟励志要逆袭    时间: 2013-6-26 10:53
有两种方法可以解决:(1)如上大神们所说,static void Main(string[] args){}只可以调用static方法,把Sum前面加上Static就可以;(2)直接把Sun方法放入main函数中也可以,不过这样显得代码思路不清晰。
作者: 关关雎鸠    时间: 2013-6-26 12:53
静态方法只能调用静态的,但是动态方法不仅可以调用静态,还能调用动态的。

你看你上面的Main方法是static,所有在调用其它的方法也只能调用static修饰的方法。
作者: lilong9298    时间: 2013-6-26 14:14
你的方法为非静态方法,要求对象引用,所以应该在public后面加一个static,使方法为静态
作者: 王震    时间: 2013-7-5 12:28
要想直接调用的话必须是静态的,静态的已经在堆里面存放了可以本类里面直接方法名调用,同一个命名空间要加类名,要是在静态方法里面调用实例的方法首先要创造一个实例对象。这样存储在堆里面后调用加对象名.方法。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2