Comment compiler un fichier code et le fichier test séparément ?

Hervé Sonkeng Messages postés 5 Date d'inscription dimanche 19 avril 2015 Statut Membre Dernière intervention 25 février 2017 - Modifié par erve88 le 19/04/2015 à 08:47
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 - 19 avril 2015 à 09:26
Bonjour,
J'ai deux fichiers:un fichier programme source et un fichier programme test à exécuter en console. J'ai du mal à joindre les deux. Je vous Mettrai les deux codes à la fin;

Est-ce possible de combiner les deux codes en 1 seul ? Si oui, y'aurait un problème de compilation et d'exécution ?

Propriétés Abstraites:Est-ce que nous pouvons parler de propriétés abstraites sans classes abstraites ?

je vois également des propriété avec le mot clé "OVERRIDE" ? Comment employée les propriétés avec ces mots clés ?
//Fichier Test
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace testPropriété
{
    class Program
    {
        static void Main(string[] args)
        {
            Student person = new Student();
            person.DisplayDetails();
            person.Name = "Spider-Man";
            person.Age = 53;
            Console.WriteLine("Person details- {0}", person.ToString());
            Console.WriteLine("Person details -{0}", person);
        }
    }
}



//Fichier code-Source
using System;
using System.Collections.Generic;
namespace Propriété
{
    public class Student
    {
        private string myName;
        private byte myAge;
        public Student()
    {
    this.myAge=0;
    this.myName = "N/A";
    }
        public string Name
        {
            get { return myName; }
            set { this.myName = value; }
        }
        public byte Age
        {
            get { return myAge; }
            set
            {
                if (value >= 17) this.myAge = value;
                else Console.WriteLine("Students age must be greater than 17");
            }
        }
        public void DisplayDetails()
        {
            Console.WriteLine("Person details - Name=" + Name + ", Age=" + Age);
        }
        public override string ToString()
        {
            return "Name=" + Name + ",Age=" + Age;
        }
    }
}

1 réponse

Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 656
19 avril 2015 à 09:26
Bonjour

tes questions montrent que tu as fait l'impasse sur les bases, ce qui est une erreur (que j'ai faite, en VB6 à une autre époque) qui t'amènera un jour face à un mur.
La meilleure réponse que je puisse te donner est suivre lire au moins http://tahe.developpez.com/dotnet/csharp/

Mettre tout ça dans un seul fichier source c'est possible mais c'est contraire à la bonne pratique du C#. Dans la programmation (tout) objet, on regroupe les fonctionnalités d'un objet dans une classe et cette classe est écrite dans un fichier source, pour plus de lisibilité et faciliter la maintenance.

Override veut dire que tu réécris une méthode dont tu hérites de la classe mère.

A ma connaissance une propriété ne peut pas être abstraite, seule une méthode le peut.
D'ailleurs ton namespace est bien mal nommé.
Ceci est une propriété:
        public byte Age
        {
            get { return myAge; }
            set
            {
                if (value >= 17) this.myAge = value;
                else Console.WriteLine("Students age must be greater than 17");
            }
        }

Au passage, byte, n'est pas le type adapté, int serait mieux.

Tu fais un faux distinguo en disant avoir un fichier test et un fichier source, ce sont tous les 2 des sources.

Si tu mets tes 2 fichiers dans un projet, cela compilera à condition que l'un puisse accéder au namespace de l'autre, soit en mettant le même aux deux codes, soit en ajoutant un using.

Mais tout ça tu le saurais ou au moins l'appréhenderais si tu avais pris le temps d'acquérir les bases.
0
Rejoignez-nous