Peut-il y avoir des fonctions autonomes en C # sans classe?
En C/C++, j'ai un tas de fonctions que j'appelle de main(), et j'ai envie de réécrire ce en C#. Puis-je avoir autonome des fonctions(méthodes) ou dois-je les mettre dans une autre classe? Je sais que je peux avoir des méthodes au sein de la même classe, mais je veux avoir un fichier pour chaque fonction/méthode.
Comme cela fonctionne:
using System.IO;
using System;
class Program
{
static void Main()
{
House balls = new House();
balls.said();
}
}
public class House
{
public void said()
{
Console.Write("fatty");
Console.ReadLine();
}
}
Mais puis-je créer une instance de la Maison et appeler a dit(), alors qu'en C, je peux juste appeler dit().
source d'informationauteur bob packer
Vous devez vous connecter pour publier un commentaire.
Pas. Faire
static
et les mettre dans unstatic
classe utilitaire si en effet, ils ne rentrent pas dans l'une de vos classes existantes.Il n'y a pas de notion autonome de fonctions en C#. Tout est un objet.
Vous pouvez créer des méthodes statiques sur une certaine utilité de la classe, et ceux sans la création d'une instance d'une classe par exemple
Vous devez les mettre dans une classe, mais la classe peut être statique, comme d'autres l'ont mentionné. Si vous voulez VRAIMENT avoir un fichier distinct pour chaque méthode, vous pouvez marquer la classe partielle pour obtenir le suivant:
Je ne recommande pas se séparer chacun, cependant. Classes partielles sont principalement utilisés de sorte que le concepteur de code généré n'écrase aucun code personnalisé dans la même classe. Sinon, vous pouvez facilement retrouver avec des centaines de fichiers, et pas de moyen facile de passer d'une méthode à l'autre. Si vous pensez que vous avez besoin d'une classe partielle parce que le nombre de méthodes devient difficile à maintenir, puis vous avez probablement besoin de séparer la logique dans une autre classe à la place.
Bien que le concept de stand-alone fonctions .NET, C# ne vous permet pas de spécifier de telles fonctions. Vous avez besoin de coller à l'intérieur d'un statique
Utils
classe ou similaire.Si vous déclarez votre méthode
static
(qui est:public static void said()
), alors vous pouvez simplement appeler avecHouse.said()
qui est aussi proche que vous obtiendrez en C#.Vous pouvez ajouter tous vos méthodes de la classe du Programme, mais cela pourrait rapidement devenir désuète désordre, communément appelé le Dieu de Classe ou une Boule de Boue anti-modèle.
Le maintien d'un fichier unique pour chaque fonction serait de même devenir un énorme gâchis. Les questions "Où dois-je placer mes méthodes" et "Quels cours dois-je créer" sont répondues par Les Modèles De Conception. Les Classes d'agrégation comportement (fonctions) et doit faire une chose (une Seule Responsabilité.)
Pour la référence, je tiens à ajouter le
using static
plus de C# 6 ici.Vous pouvez maintenant utiliser les méthodes d'une classe statique sans avoir à taper le nom de la classe, plus et plus de nouveau. Un exemple correspondant à la question serait:
Maison.cs
Programme.cs