Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
LINUX & OPEN SOURCE
30 décembre 2008

Différence entre vala et c#: Property

Le code qui suit compile sans problème, mais plante à l'éxecution. 
La correction est à la fin: Il faut introduire une variable private avec un nom différent du nom donné en Property

// Exemple Property c# - plante en vala
using GLib;
namespace Essai_property {
    class Property {
        public int valeur {
            get {
                return valeur;
            }
            set {
                this.valeur = value;
            }
        }

        public int run() {
            valeur = 10;
            stdout.printf("La valeur est %d\n", valeur);
            return 0;
        }

        public static int main() {
            var app = new Property();
            return app.run();
        }
    }
}

Le code corrigé pour Vala:

// Exemple Property fonctionne en Vala
using GLib;
namespace Essai_property {
    class Property {
    private int sous_valeur;     //particularité de Vala
        public int valeur {
            get {
                return sous_valeur;
            }
            set {
                this.sous_valeur = value;
            }
        }

        public int run() {
            valeur = 10;
            stdout.printf("La valeur est %d\n", valeur);
            return 0;
        }

        public static int main() {
            var app = new Property();
            return app.run();
        }
    }
}

Publicité
Publicité
Commentaires
LINUX & OPEN SOURCE
Publicité
Archives
Publicité