黑马程序员技术交流社区

标题: 怎么调用不了Sum方法? [打印本页]

作者: 吴承烨    时间: 2013-6-18 20:27
标题: 怎么调用不了Sum方法?
  1. <p><u>using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;</u></p><p><u>namespace 用面向对象做计算器
  5. {
  6.    class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.            //用面向对象做计算器
  11.            // 1.输入数字+符号
  12.             Console.WriteLine("请您输入数字1");
  13.             int numBer1 =Convert.ToInt32( Console.ReadLine());
  14.             Console.WriteLine("请您输入字符串");
  15.             string char1 = Console.ReadLine();
  16.             Console.WriteLine("请您输入数字2");
  17.             int numBer2 =Convert.ToInt32( Console.ReadLine());
  18.             int output = 0;
  19.             // 2.调用
  20.             switch (char1)
  21.             {
  22.                 case "+": output = Sum1(numBer1, numBer2); <font color="red">//这Sum1 调用不了</font>
  23.                 case "-":
  24.                 case "*":
  25.                 case"/":
  26.                 default: Console.WriteLine("输入错误");
  27.             }
  28.         }
  29.     }
  30. }</u></p><p><u><font color="red">================Sum类===============</font>
  31. using System;
  32. using System.Collections.Generic;
  33. using System.Linq;
  34. using System.Text;</u></p><p><u>namespace 用面向对象做计算器
  35. {
  36.     class Sum
  37.     {
  38.         public int Sum1(int number1,int number2)
  39.         {
  40.            return( number1 + number2);
  41.         }
  42.     }
  43. }
  44. </u></p>
复制代码
  1. <u></u>
复制代码

作者: 愛↘轉角    时间: 2013-6-18 20:43
那个,你Sum1方法是在Sum类中哦
所以调用的时候要Sum.Sum1(int,int)
还有在定义Sum1方法的时候要加上static
class Sum

  {

    public static int Sum1(int number1,int number2)//这里加上static
    {
     return( number1 + number2);
      }
  }
在别的类中调用的时候Sum.Sum1(int,int)

另外,每个case语句要加上break噢。。。
作者: changweihua    时间: 2013-6-18 20:44
首先switch没有break,其次Sum1的是Sum类的一个实例方法,应该实例化Sum,然后调用Sum1方法
  1. //用面向对象做计算器
  2.                    // 1.输入数字+符号
  3.             Console.WriteLine("请您输入数字1");
  4.             int numBer1 =Convert.ToInt32( Console.ReadLine());
  5.             Console.WriteLine("请您输入字符串");
  6.             string char1 = Console.ReadLine();
  7.             Console.WriteLine("请您输入数字2");
  8.             int numBer2 =Convert.ToInt32( Console.ReadLine());
  9.             int output = 0;
  10.             // 2.调用
  11.             switch (char1)
  12.             {
  13.                     case "+": output = new Sum().Sum1(numBer1, numBer2);break; //这Sum1 调用不了
  14.                 case "-":break;
  15.                 case "*":break;
  16.                 case"/":break;
  17.                 default: Console.WriteLine("输入错误");break;
  18.             }
  19.                         Console.WriteLine("{0}{1}{2}={3}", numBer1, char1, numBer2, output);
  20.                         Console.ReadKey(true);
复制代码

作者: 吴承烨    时间: 2013-6-18 20:50
知道了,马大哈了
作者: 许大虾    时间: 2013-6-18 20:53
public int Sum1(int number1,int number2)  :多加个static   传参的时候只要在括号里写  (int, int) 就哦了
你下面用了 class sum 表示你新创了个类 所以调用sum1 的时候 要用 sum.sum1
break 语句没加
作者: 成都—陈超    时间: 2013-6-18 20:56
貌似你是Sum1是定义在新的类Sum里的   要在Main方法里调用Sum1方法,必须实例化一个Sum对象再用实例化的对象调用Sum1方法
这里应该这么写吧  Sum s1 = new Sum();   s1.Sum1(numBer1,numBer2);   额number是一个单词的  怎么B还大写了...




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