2014-01-17 38 views
30

我想要使用此代碼的NET.reflector。使用Reflexil,我想用它來取代代碼,「命名空間不能直接包含成員,如字段或方法」在Net.Reflector

if(Input.GetKeyDown(KeyCode.Keypad5)) { 
int i = 0; 
Character localPlayer = PlayerClient.GetLocalPlayer().controllable.GetComponent<Character>(); 
foreach (UnityEngine.Object obj2 in UnityEngine.Object.FindObjectsOfType(typeof(LootableObject))) 
{ 
    if (obj2 != null) 
    { 
     i++; 
     LootableObject loot = (LootableObject) obj2; 
     Debug.Log("Loot "+i+": "+loot.transform.position.ToString()); 
     CCMotor ccmotor = localPlayer.ccmotor; 
     if(ccmotor != null && tpPos1 != Vector3.zero) { 
      ccmotor.Teleport(loot.transform.position); 
      Notice.Popup("", "Teleported to "+loot.name, 1.5f); 
     } 
     break; 
    } 
} 

}

但它給我一個錯誤,當我嘗試編譯:

Line: 1 Column: 1 Error Number: CS0116 Error Message: "A namespace does not directly contain members such as fields or methods" 

這是統一的代碼,我想。我沒那麼有經驗。任何人都可以解決這個問題嗎?或者告訴我該怎麼做?謝謝。

+0

它需要在一個類內...... –

+1

而且可能在該類內的一個方法內。 – Magus

+0

有人可能會解釋我需要用這個代碼做什麼?就像我說的那樣,我沒那麼有經驗。我沒有寫下你自己看到的。如果腳本有任何問題或者需要移動,我只需要幫助。 – user3204732

回答

55

您顯示的代碼段似乎並不直接對錯誤負責。

這是你如何會導致錯誤:

namespace MyNameSpace 
{ 
    int i; <-- THIS NEEDS TO BE INSIDE THE CLASS 

    class MyClass 
    { 
     ... 
    } 
} 

如果你不立即看到什麼是「外」之類,這可能是由於錯放或額外的右括號(S)}

+0

謝謝,只是需要一個提示,不管它是否是代碼。謝謝! – user3204732

+0

這很有幫助,它讓我「看到」我的類關閉括號高於我的方法的開始。我剛開始使用Visual Studio 2017,它會自動添加兩個括號,特別是在開頭旁邊添加右括號 - 我不習慣(在使用VS 2008多年之後),甚至沒有注意到我不是在課堂上寫作的方法! – Doreen

相關問題