J'ai lu la version C ++ de cette question mais je ne l'ai pas vraiment comprise.
Quelqu'un peut-il s'il vous plaît expliquer clairement si cela peut être fait et comment?
J'ai lu la version C ++ de cette question mais je ne l'ai pas vraiment comprise.
Quelqu'un peut-il s'il vous plaît expliquer clairement si cela peut être fait et comment?
Utilisez le Tuple de .NET 4.0 + :
Par exemple:
public Tuple<int, int> GetMultipleValue()
{
return Tuple.Create(1,2);
}
Vous ne pouvez pas le faire en C #. Ce que vous pouvez faire est d’avoir un paramètre out
ou de renvoyer votre propre classe (ou struct si vous voulez qu’elle soit immuable).
Utilisation du paramètre out
public int GetDay(DateTime date, out string name)
{
// ...
}
Utiliser une classe personnalisée (ou struct)
public DayOfWeek GetDay(DateTime date)
{
// ...
}
public class DayOfWeek
{
public int Day { get; set; }
public string Name { get; set; }
}
Affiche précédente est droit. Vous ne pouvez pas retourner plusieurs valeurs à partir d'une méthode C#. Toutefois, vous avez deux options:
Les avantages et les inconvénients sont souvent difficiles à comprendre. Si vous retournez une structure, assurez-vous qu'il est petit parce que les structures sont de type de valeur et passés sur la pile. Si vous retournez une instance d'une classe, il y a quelques modèles de conception ici que vous pouvez utiliser pour éviter de causer des problèmes - les membres des classes peuvent être modifiés, car C# passe les objets par référence (vous n'avez pas ByVal comme vous l'avez fait en VB).
Enfin, vous pouvez utiliser les paramètres de sortie, mais je voudrais limiter l'utilisation de cette scénarios lorsque vous avez seulement un couple (comme 3 ou moins) de paramètres - sinon, les choses se corsent et difficiles à maintenir. Aussi, l'utilisation de paramètres de sortie peut être un inhibiteur de l'agilité, car votre signature de la méthode devra changer à chaque fois que vous avez besoin d'ajouter quelque chose à la valeur de retour alors que de retourner une structure ou instance de classe, vous pouvez ajouter des membres, sans modifier la signature de la méthode.
D'un point de vue architectural, je déconseille l'utilisation de paires clé-valeur, ou les dictionnaires. Je trouve ce style de codage nécessite "connaissance secrète" dans le code qui utilise la méthode. Il doit savoir à l'avance ce que les touches sont va être et ce que les valeurs de la moyenne et si le développeur qui travaille sur la mise en œuvre interne de change la façon dont le dictionnaire ou KVP est créé, il peut facilement créer une défaillance en cascade tout au long de l'ensemble de l'application.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.