黑马程序员技术交流社区
标题:
实现重载方法时的错误
[打印本页]
作者:
黑马—代忠
时间:
2012-8-6 11:44
标题:
实现重载方法时的错误
class Program
{
/// <summary>
/// 定义一个static方法
/// </summary>
/// <param name="num1">第一个int型参数</param>
/// <param name="num2">第二个int型参数</param>
/// <returns>返回int型</returns>
public static int Add(int num1, int num2)
{
return num1 + num2;
}
/// <summary>
/// 重新定义Add方法
/// </summary>
/// <param name="num1">第一个int型参数</param>
/// <param name="num2">第二个double型参数</param>
/// <returns>返回double型</returns>
public double Add(int num1, double num2)
{
return num1 + num2;
}
/// <summary>
/// 重新定义Add方法,与第一个方法的参数个数不同
/// </summary>
/// <param name="num1"></param>
/// <param name="num2"></param>
/// <param name="num3"></param>
/// <returns></returns>
public int Add(int num1, int num2, int num3)
{
return num1 + num2 + num3;
}
static void Main(string[] args)
{
Program pro = new Program();//实例化类Program的对象pro
int x = 14;
int y = 21;
int z = 9;
double y2 = 5.3;
Console.WriteLine("{0}+{1}={2}", x, y, pro.Add(x, y));//此行报错
Console.WriteLine("{0}+{1}={2}", x, y2, pro.Add(x, y2));
Console.WriteLine("{0}+{1}+{2}={3}", x, y, z, pro.Add(x, y, z));
Console.ReadKey();
}
}
错误 1 无法使用实例引用来访问成员“_05.重载方法的实现.Program.Add(int, int)”;请改用类型名来限定它 G:\基础复习\第1阶段 重点复习内容(5天)\04属性,方法,结构,类\05.重载方法的实现\Program.cs 49 52 05.重载方法的实现
请问这是什么原因,该怎么解决?
作者:
许庭洲
时间:
2012-8-6 13:22
1,static方法中不能直接使用非静态成员, 因为非静态成员与实例相关,通过对象点取间接使用;
2,static方法中不能用this(与实例相关);
3,非static方法中可以使用static成员。
作者:
郭张浩
时间:
2012-8-7 04:23
public static int Add(int num1, int num2)
{
return num1 + num2;
}
去掉static 就可以了。
不能直接调用静态方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2