2010-11-21 5 views
1

je commence une solution simple console C# via Mono sous Mac OS X.C# « reliant » les classes

J'ai un fichier Main.cs pour commencer, mais je veux créer une classe distincte et être en mesure d'accéder à l'objet de cette classe à partir de mon fichier Main.cs.

Comment puis-je accéder à cette classe à partir du fichier Main.cs?

Dites que le nom de ma classe était Math.

Dans mon fichier Main.cs, puis-je créer un nouvel objet comme ceci:

Math calculator = new Math()

Sans référence à la classe dans le fichier Main.cs de quelque façon?

Ou dois-je utiliser une sorte de déclaration/directive d'importation?

+0

vous voulez être capable d'utiliser quelque chose sans le référencer "de quelque façon"? Comment est-ce possible? Et si oui, pourquoi? Si cela ne vous dérange pas de me demander ..... – BeemerGuy

+0

@pst OK, merci. Pourquoi ne publiez-vous pas le vôtre comme réponse? Merci pour l'aide. @BeemerGuy, si vous n'obteniez pas ce que je voulais dire, je me demandais si je ne devais pas le référencer, ou si je le faisais. – Qcom

Répondre

3

Vous avez besoin d'une instruction using si votre Main et Math sont dans des espaces de nom différents, sinon cela fonctionne. Voici un exemple. Le using System introduit la bibliothèque qui contient la classe Console, mais aucune using n'est requise pour utiliser la classe Math.

Program.cs:

using System; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Math caclulator = new Math(); 
      Console.WriteLine(caclulator.Add(1, 2)); 
     } 
    } 
} 

Math.cs:

namespace ConsoleApplication1 
{ 
    class Math 
    { 
     public int Add(int x, int y) 
     { 
      return x + y; 
     } 
    } 
} 
1

Il y a deux scénarios ici. Soit cette classe se trouve dans une DLL distincte (projet de bibliothèque de classes), soit dans le même projet. Pour référencer dans le même projet, aucun travail supplémentaire n'est nécessaire, à part le référencer avec l'espace de noms correct (comme mentionné dans d'autres articles).

Dans le cas d'une DLL séparée, vous devez ajouter une référence au projet dans la définition du projet. La plupart des projets par défaut viennent avec une référence à System.dll et d'autres bibliothèques connexes. Il est recommandé de nommer votre DLL en fonction des espaces de noms qui y sont définis. Si vous avez des classes comme Foo.Mathematics.IntMath, Foo.Mathematics.DblMath alors je vous suggère de le nommer Foo.Mathematics.dll.

Lorsque j'étais là où vous êtes, j'ai ramassé .NET Framework Essentials de O'Reilly et il y avait des réponses à toutes mes questions à ce moment-là.