Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

structure simple:où sont les erreurs ?


Sujet :

C#

  1. #1
    Membre à l'essai
    structure simple:où sont les erreurs ?
    bonjour,

    Le debugger Visual Studio me dit qu'il ya plein d'erreurs dans ce code visant à créer une structure simple:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
     
    public class struct_vect : MonoBehaviour {
     
        struct vect
    	{
     
    		float x;
    		float y;
    		float z;
     
     
    }
     
     
    // Use this for initialization
    void Start () {
     
    		vect trois;
    		trois.x = 1;
    		trois.y = 4;
                    trois.z =7;
     
    		print("(" + trois.x + "," + trois.y + "," + trois.z + ")");
     
    	}
     
    	// Update is called once per frame
    	void Update () {
     
    	}
    }


    Je ne vois pas les fautes !
    C'est vraiment agaçant !

    merci de votre aide

  2. #2
    Membre expérimenté
    Tu devrais inclure les messages d'erreur fournis par le compilateur, parce-que là il est difficile de voir ce qui cloche. Par exemple tu as une méthode print en minuscule, ce qui est inhabituel et elle n'apparaît pas dans ton code ; du coup on ne sait pas si c'est une erreur de frappe dans ton message, une méthode que tu as réellement définie comme ça quelque part ou encore une méthode qui existe dans la classe MonoBehaviour (hautement improbable en minuscule).

  3. #3
    Membre expérimenté
    Bonjour,

    Il te suffit de passer les les variables x y z en plus, afin que tu puisses y accéder. En effet ce n'est pas comme dans le C++, ou un struct a ses variables publiques par défaut.

    Après quelques petites remarques, genre le nom de tes classes / variables, essaye de respecter les conventions du C#. Ou genre la déclaration inline de ton struct, pose toi la question si tu en auras besoin ailleurs, etc ...

    @Noxen : print fonctionne très bien, il s'agit d'une sorte d'alias pour la fonction Debug.Log() de Unity. (je ne savais pas non plus )
    Keep calm and debug it

  4. #4
    Membre à l'essai
    sujet résolu

    bon code:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
     
    public class struct_vect : MonoBehaviour {
     
    	struct Kodak
    	{
     
            //à revoir l'accessibilité grâce à public(par défaut,c'est quoi?)
    		public float x;
    		public float y;
    		public float z;
     
     
    		public Kodak(float x,float y,float z)
    		{
    			this.x = x;
    			this.y = y;
    			this.z = z;
    		}
     
    	}
     
     
           Kodak trois = new Kodak(1,4,7);
     
    	// Use this for initialization
    	void Start () {
     
     
     
    		print("(" + trois.x + "," + trois.y + "," + trois.z + ")");
     
    	}
     
    	// Update is called once per frame
    	void Update () {
     
    	}
    }

  5. #5
    Expert éminent sénior
    la portée par défaut d'une classe est internal
    la portée par défaut d'un membre est private

    oui un constructeur sur une struct c'est étrange, mais ca reste pratique, et tu n'es pas obligé d'en mettre un
    Cours complets, tutos et autres FAQ ici : C# - VB.NET