web-dev-qa-db-fra.com

"Un espace de noms ne peut pas contenir directement des membres tels que des champs ou des méthodes" dans Net.Reflector

J'essaie d'utiliser ce code pour NET.reflector. En utilisant Reflexil, j'essaie de remplacer le code par ceci,

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; 
    } 
} 

}

Mais cela me donne une erreur lorsque j'essaie de compiler:

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

C'est le code de l'unité, je pense. Je ne suis pas expérimenté. Quelqu'un pourrait-il résoudre ce problème pour moi? Ou me dire quoi faire? Merci.

53
user3204732

L'extrait de code que vous affichez ne semble pas être directement responsable de l'erreur.

Voici comment vous pouvez provoquer l'erreur:

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

   class MyClass
   {
      ...
   }
}

Si vous ne voyez pas immédiatement ce qui est "en dehors" de la classe, cela peut être dû à un ou plusieurs crochets de fermeture superflus }.

100
G. Stoynev