2013-12-08 30 views
0

我有一個名爲StartUp的文件夾,它包含開始類,並在程序中首先加載。我想訪問另一個名爲OverAll的文件夾,它擁有將在整個遊戲中使用的類。我想從OverAll取得一個名爲Mouses的班級,並將其轉移到StartUp的任何其他班級。C#在文件夾中的類,需要調用另一個文件夾中的類

編輯: 10:00 2013年12月7日

這是文件和文件夾,讓我們爲例子Mouses.cspublic int thing = 1;,我希望它移動到TitleScreen.cs,我該怎麼賴特允許TitleScreen.cs查看/編輯該int?

我可以訪問Game1.cs中的所有課程,方法是調用那裏的文件夾,然後調用課程(例如OverAll.Mouses.ect = 1;),反之亦然。

Files and folders

OverAll.Mouses.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
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; 

namespace Lover__Regret 
{ 
    class Mouses 
    { 
     public int thing = 1; 
    } 
} 

StartUp.TitleScreen.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Microsoft.Xna.Framework; 
using Microsoft.Xna.Framework.Content; 
using Microsoft.Xna.Framework.Graphics; 
using Microsoft.Xna.Framework.Input; 

namespace Love__Regret.StartUp 
{ 
    class TitleScreen 
    { 
     public static void Update(GameTime gameTime) 
     { 
     //Want to call thing here 
     } 
    } 
} 
+0

你的意思是「上課並轉學」?一些代碼可能有助於說明這個想法。 – CodeCaster

+0

@CodeCaster我將更新帖子。 –

回答

0

那麼,在Mousesthing字段不是靜態字段。這意味着您需要在TitleScreen以內的實例參考Mouses以便能夠訪問它。你說Game1.cs你已經有實例的引用。所以,我的建議是要做到以下幾點:

  1. TitleScreenUpdate方法應該是靜態的。您需要更新特定的TitleScreen實例。所以刪除static關鍵字。
  2. 創建TitleScreen一個構造函數的Mouses一個實例和一個字段來存儲實例:

    私人滑鼠_mouseHandler;

    public TitleScreen(Mouses mouseHandler) { _mouseHandler = mouseHandler; }

  3. 然後,在Update方法調用是這樣的:

    Console.WriteLine(_mouseHandler.thing); //或任何你想從Mouses

  4. 與領域做現在,當你在Game1.cs構建TitleScreen,這樣的創建,傳遞Mouses實例:

    //創建鼠標實例(例如:Mouses mouses = new Mouses())
    標題屏幕= new TitleScreen(mouses);

大多數編程不是通過靜態類/方法(這將是過程式編程)完成的。你需要創建你的類的實例。

+0

謝謝你的幫助,我希望繞過主類('Game1.cs')而不必使用它。因爲我知道如何引用類,但想要使用最簡單的代碼,巫婆意味着我將不得不爲類似ie的每個類都這樣做。 'Credits','Options','TitleScreen'和任何其他需要'Mouses'類的類。跳過主類會節省大約20行代碼,但是我仍然在嘗試最少量的代碼。 –

+0

我已經搞砸了爲什麼我無法訪問其他文件夾'OverAll',程序中有一個錯誤。我不知道是不是這樣,而是創建了一個新項目並創建了2個文件夾並在每個文件夾中添加了一個類,我只需通過「private OverAll.Mouse Mouses;」就可以訪問另一個類,然後就可以訪問Mouses的信息並隨意更改。我不知道其他項目有什麼問題。 –

+0

那麼,你最好儘量編寫可維護的代碼,即使它只是20行代碼。我的意思是你的代碼不應該是全部靜態的。至少要使用Singleton模式,如果你不想用實例「搞亂」:) – Timotei

相關問題