c#中调用方法

来源:百度知道 编辑:UC知道 时间:2024/06/30 23:27:10
public void showMap(int playerPos1, int playerPos2)
{
showLine1(0, 31, playerPos1, playerPos2); //显示地图第一行
Console.WriteLine(); //换行
showRLine(31, 34, playerPos1, playerPos2); //显示地图右竖行
showLine2(35, 66, playerPos1, playerPos2); //显示地图第二行
Console.WriteLine(); //换行
showLLine(66, 68, playerPos1, playerPos2); //显示地图左竖行
showLine1(69, 100, playerPos1, playerPos2); //显示地图第三行
}
这是我在java中写的方法,我把它复制到c#中,上面还有很多就不写了,想问下如何在main中调用打印showmap
c#调用方法和java中一样吗?
我添加static后出现错误如下:
错误 3 非静态的字段、方法或属性“Map.Program.Map.showLine1(int, int, int, int)”要求对象引用 E:\my\Visual Studio 2005\Projects\Map\Map\Program.cs 148 10 Map

因为Main是一个静态方法,在静态方法里面不能直接调用实例方法.(实例方法需要先用new关键字创建实例再调用.)有两种办法可以解决你的问题.
一是把你自己的方法 showMap 改成静态的,showMap变成静态方法之后你还得保证它直接调用的方法都是静态的.以此类推.(这也是你出现编译时错误的原因.根据错误提示showLine1也是一个实例方法,不能在静态方法里面直接调用)
二是创建实例再调用.用new关键字创建showMap所在的对象.
比如:
Map.Program.Map map = new Map.Program.Map();
在main方法里用这个对象去调用.
map.showMap(x, y);

OVER!

public static void showMap(int playerPos1, int playerPos2)
就是在方法前面直接加上static,然后在main中,直接用就可以了。

因为main是静态的,所以他调用的方法也必须是静态的。

PS:是一样的,你的这个问题,放在JAVA中同样存在。静态方法只能调用静态的方法。所以我想问题可能出在,showLine1这个方法上。

JAVA和C#调用方法基本上一样。你可以写一个类,把这些相关的方法写进那个类中,然后把这些方法都定义成静态的(static),然后只要在Main方法中直接调用这个类的这些方法就可以了。

调用方法基本没有区别 但那些方法是C#的类库中的.在JAVA中是没有的.比如console.writeLine() 在JAVA中是没有的
另外.静态字段不能调用非静态字段

java中的main方法也一样要调用静态的方法吧?你这样写好像java不行吧
C#还有其他调用方法的办法,用委托