Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何正确调用库?_C#_Dll_Reference_Xna - Fatal编程技术网

C# 如何正确调用库?

C# 如何正确调用库?,c#,dll,reference,xna,C#,Dll,Reference,Xna,我已经到处看了很多次了。。我还没有找到任何可以帮助我的东西。 这是我期待的结果: 我使用的是XNA Game Studio 4.0,我想创建自己的库,以便在制作游戏时使用,这样我就不必每次制作新游戏时都重写以前反复使用的代码。所以,我想打电话给图书馆作为参考。我的图书馆: using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft

我已经到处看了很多次了。。我还没有找到任何可以帮助我的东西。 这是我期待的结果:

我使用的是XNA Game Studio 4.0,我想创建自己的库,以便在制作游戏时使用,这样我就不必每次制作新游戏时都重写以前反复使用的代码。所以,我想打电话给图书馆作为参考。我的图书馆:

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace iRaaptorLibraryXNA
{
    public class XNALibrary
    {
        public static void consolePrint(string text)
        {
            var timeStamp = System.DateTime.Now.ToString(@"hh:mm:ss tt");
            Console.WriteLine("[" + timeStamp + "] CONSOLE: " + text);
        }
    }
}
我在调试时经常使用consolePrint函数。 例如,如果我想打印一行来表示成功,我希望能够打字

consolePrint("SUCCESS!")
然后打印到控制台。我不想重复输入:

XNALibraryXNA.consolePrint("SUCCESS!");
我想把它缩短到

consolePrint("SUCCESS!");
这是我的游戏代码:

using iRaaptorLibraryXNA;

namespace xnaFun
{
public class Game1 : Microsoft.Xna.Framework.Game
    {

        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;

        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
        }

        protected override void Initialize()
        {

            base.Initialize() 
            XNALibrary.consolePrint("Initialized!");
        }

        protected override void LoadContent()
        {
            iRaaptorLibraryXNA.consolePrint("Loading content!"); // DOES PRINT TO CONSOLE
            spriteBatch = new SpriteBatch(GraphicsDevice);
        }
等等

我希望我包含了足够的信息~伊拉克人

TL;博士,我想缩短

XMALibrary.consolePrint("text");


将此类添加到您的库中:

public class BaseGame : Microsoft.Xna.Framework.Game
{
    protected void consolePrint(string message)
    {
        XNALibrary.consolePrint("Initialized!");
    }
}
然后,您的游戏类可以从basegame继承并使用consolePrint方法:


不键入1个单词的原因是什么?我宁愿键入consolePrint,也不愿键入XMALibrary.consolePrint+我在游戏调试代码块中输入了很多consolePrint。。组织,减少键入。如果可能的话,您可以通过将这些更改应用到我的代码来帮助我吗?首先将BaseGame类添加到您的库项目中。然后将Game1类的基类从Microsoft.Xna.Framework.Game更改为BaseGame。事情应该就这么简单。
public class BaseGame : Microsoft.Xna.Framework.Game
{
    protected void consolePrint(string message)
    {
        XNALibrary.consolePrint("Initialized!");
    }
}
public class MyGame : BaseGame
{       
    protected override void Initialize()
    {
        base.Initialize() 
        consolePrint("Initialized!");
    }
}