将方法放在另一个源文件中,而不创建新类

时间:2014-01-05 03:03:17

标签: c# xna

在处理C#XNA项目时,我创建了很多方法来最小化默认LoadContent / Update / Draw方法中的代码。我想知道是否可以将这些方法从Game1.cs文件中移出到另一个源文件而不将它们封装在新类中并传递对象引用?

我尝试使用正确的using语句和名称空间声明创建一个新的.CS文件,但编译器告诉我它缺少一个类声明,所以我不相信我做得对。目前我已经创建了一个HelperMethod类,我在Game1.cs文件的顶部实例化,但是能够在C#中使用PHP中的include_once这样的东西会很好。

有没有办法创建方法或函数文件并将其包含在我的代码中,还是应该坚持使用HelperMethod类?

5 个答案:

答案 0 :(得分:1)

您还可以使用部分类来跨多个文件中断类定义。有关更多信息,请参阅MSDN上的这篇文章:部分类和方法(C#编程指南)http://msdn.microsoft.com/en-us/library/wa80x488.aspx

答案 1 :(得分:1)

不,你不能。

C#中的所有方法都必须在对象中。

如果你担心传递引用,你会想到这一切都是错的。参考文献的重量很轻..你只是首先进入过早优化。

答案 2 :(得分:0)

看完之后:

Equivalent to PHP's include in C#

似乎最好的做法是留在我现有的帮助班。编译语言似乎没有使用任何类型的include函数,只是将代码附加到当前文件。

答案 3 :(得分:0)

+1关于STLDeveloper关于使用部分类和方法的建议。

另外的想法:如果你想要完成什么是有意义的(特别是如果你的代码可以在你可能拥有的其他XNA游戏项目中重复使用),那么创建你自己的Game类,扩展Microsoft.Xna.Framework.Game让Game1继承自那。这将包括你在一个单独的.cs文件中编写的方法,但保持你的Game1.cs“更小”。

Game.cs:

public class Game : Microsoft.Xna.Framework.Game
{
    /* Your methods here */
}

Game1.cs:

public class Game1 : Game
{
    /* More of your methods here */
}

答案 4 :(得分:0)

也许您正在寻找扩展方法?

Extension Methods

或者你可以尝试保留一个包含代表的课程。

Delegates