如何在C#中调用方法?
我试图学习C#中的方法是如何工作的(也使用XNA框架) 这是我做的方法如何在C#中调用方法?,c#,C#,我试图学习C#中的方法是如何工作的(也使用XNA框架) 这是我做的方法 public void Exit() { if (Keyboard.GetState().IsKeyDown(Keys.Escape)) { this.Exit(); } 我的印象是它的格式是正确的。但我不知道该怎么称呼它。或者我做错了?对于这种特殊的方法,您可以这样称呼它: Exit(); Foo.Bar(); // Foo i
public void Exit()
{
if (Keyboard.GetState().IsKeyDown(Keys.Escape))
{
this.Exit();
}
我的印象是它的格式是正确的。但我不知道该怎么称呼它。或者我做错了?对于这种特殊的方法,您可以这样称呼它:
Exit();
Foo.Bar(); // Foo is the name of class, not an object of type Foo
把它作为一条线插入任何地方,它就会起作用。在执行此操作之前,请检查this.Exit()代码>行,您不想递归地调用自己
但是看一下该方法中的其他代码行,我不确定这正是您想要做的-当按下特定的键并同时按下Esc
键时,是否要退出?有两件事很突出:
最后缺少一个}
this.Exit()
是一个递归调用
方法总是在对象(如类)上声明,并且this
引用当前对象,因此this.Exit()
将在按住Esc键的同时连续调用自身
您试图用代码实现的是什么?我想您必须从某个地方开始。。。您似乎在不知不觉中编写了一个递归inifinte循环
public void Exit()
{
if (Keyboard.GetState().IsKeyDown(Keys.Escape))
{
this.Exit(); // this is calling your own Exit() method we we are in at the moment!
}
}
我想你想要的是:
public void Exit()
{
if (Keyboard.GetState().IsKeyDown(Keys.Escape))
{
Environment.Exit();
}
}
方法是类(或结构)的成员,通过类的实例调用。例如:
public class Foo {
public void Bar()
{
Console.WriteLine("Running the Bar method");
}
}
public class Foo {
public static void Bar()
{
Console.WriteLine("Running the static Bar method");
}
}
然后,您将在某个地方生成如下代码:
Foo fooVar = new Foo();
fooVar.Bar(); // call the Bar method
或者,您可以定义一个不需要类实例的静态方法。例如:
public class Foo {
public void Bar()
{
Console.WriteLine("Running the Bar method");
}
}
public class Foo {
public static void Bar()
{
Console.WriteLine("Running the static Bar method");
}
}
然后,您可以在代码中这样调用它:
Exit();
Foo.Bar(); // Foo is the name of class, not an object of type Foo
另外,请查看C#和.Net的精彩介绍。我相信Microsoft.Xna.Framework.Game
(我认为是继承自)提供了一种“更新”方法,您应该覆盖它
重写基本上用您想要的任何内容替换基类的方法。在本例中,调用一个方法,该方法检查键盘的状态,并在按下escape时退出
每次游戏应该更新自身(屏幕上的内容、玩家位置等)时,都会调用Update
你遇到的问题不是调用这个方法。我并不是说你轻率,斯莱特博德;但我强烈推荐一本基本的编程书籍或课程,我会把学习XNA框架的想法搁置一边,直到你在C语言本身有一个坚实的基础。我一直在看教程,但是我不能理解它们,所以我在这里问。缺少的括号只是一个错误的复制/粘贴作业。我在msdn网站上查找了一些方法,并在自己的网站上进行了尝试。基本上这就是结果。从C#开始的一个很好的地方是查尔斯·佩佐尔德的“.Net Book Zero”。这是一本免费电子书,涵盖了C#和.Net的基础知识。应该让你开始。@Andrew:这不是.NETBookZero的意图。正如封面页所说,它教给C语言如何应用现有的C和C++技巧,它不包括基础知识。这个问题非常有说服力地证明Slateboard是一个新的程序员,而不是一个想要切换语言的人。我基本上是在学习如何准确地使用方法。除此之外,它还没有绑定到任何特定的程序。这将调用方法,或者这是方法本身?这是方法本身。您必须在某个地方调用Exit()来调用该方法。也许你应该在谷歌上搜索一些C#教程。@Slateboard看看你的其他一些问题,我可以建议:当你试图解决一个你陷入困境的特定问题时,使用StackOverflow(以及一般的论坛)是很好的,但是如果你正在学习,从一本好书(或教程)开始学习会更好、更快、更全面不要问你想学的东西的方方面面,这是有道理的。我怎样才能把这个应用到我想做的事情上呢?从你的代码中不清楚你到底想实现什么。如果您想编写一个名为Exit的方法,那么它需要是一个类的成员,然后您需要创建该类的实例。另一种方法是静态方法,它不需要实例。我将在我的答案中添加一个这样的示例。在您的示例中,关键字“this”指的是Exit是其成员的类的当前实例。因此,如果在用户按下Esc键时在代码中的某个地方调用Exit,则该方法将递归地调用自身,直到释放Esc键,或者堆栈填满(以先发生的为准)。