Est-il possible de générer une ToString()
à l'aide de Visual Studio 2010?
Je ne veux vraiment pas faire ça à la main!
[MODIFIER]
Je cherche une représentation en chaîne simple de mon modèle. Dans les IDE précédents *, la génération ToString a été activée dans l'interface utilisateur à l'aide de modèles simples et d'une sélection de champs.
Actuellement, les implémentations par défaut d'Equal et de Hashcode sont proposées dans un modèle similaire. J'avais espéré qu'il y avait quelque chose de similaire pour ToString.
Cela ne semble pas par défaut - merci pour les réponses!
(* ceci est mon premier projet .net)
Vous pouvez créer votre propre extrait personnalisé pour chaque code standard et y accéder à partir d'IntelliSence.
Voici un bon tutoriel http://msdn.Microsoft.com/en-us/library/ms165392.aspx
Découvrez comment créer extraits avec des remplacements . Vous pouvez créer des structures assez génériques.
Resharper supporte ceci en générant des "membres de formatage"
https://www.jetbrains.com/resharper/webhelp/Code_Generation__Formatting_Members.html
Resharper -> Edit -> Generate Code -> Formatting Members
ou
alt + insert -> Formatting Members
J'ai confirmé que ceci est disponible dans Resharper 8.
Vous pouvez utiliser le projet StatePrinter
class AClassWithToString
{
string B = "hello";
int[] C = {5,4,3,2,1};
// Nice stuff ahead!
static readonly StatePrinter printer = new StatePrinter();
public override string ToString()
{
return printer.PrintObject(this);
}
}
La douleur majeure que VS 2010 n'a même pas de méthode ToString à génération automatique, la syntaxe est assez proche de Java où j'ai utilisé Ecilpse pour générer le ToString, puis collé dans VS ...
Il n’existe pas sur le VS en configuration standard, mais sur le plugin ReSharper , si vous ne souhaitez pas le mettre en œuvre vous-même. Le plugin est commercial, mais je pense personnellement que cela en vaut la peine.
Avec ReSharper, ce serait alt + ins -> redéfinir les membres -> tostring tant que le nom de la classe est sur le curseur.
Moe powinieneś spojrzeć na AutoCode 4. . Jest à rozszerzenie Visual Studio, le meilleur choix est de télécharger.
En savoir plus sur le mariage klasie napisać po prostu tostr
i nacisnąćCtrl+Enteri automatycznie wygeneruje metodę ToString()
, która łączy wszystkie właściwości publiczne klasy.
Avec Reflection, vous pouvez réellement coder une méthode ToString ():
public override String ToString()
{
Type objType = this.GetType();
PropertyInfo[] propertyInfoList = objType.GetProperties();
StringBuilder result = new StringBuilder();
foreach (PropertyInfo propertyInfo in propertyInfoList)
result.AppendFormat("{0}={1} ", propertyInfo.Name, propertyInfo.GetValue(this));
return result.ToString();
}
Si vous n'écrivez pas votre propre méthode ToString, Object
vous en fournit une (bien que cela ne soit pas très utile car elle ne renvoie que l'espace de noms et le nom du type d'objet).
Sinon, vous devez le créer vous-même, car IDE ne peut pas savoir ce que vous voulez afficher en tant que méthode ToString
d'un objet.
Si vous avez besoin d’une meilleure représentation de votre objet lors du débogage vous pouvez utiliser le DebuggerDisplayAttribute
:
[DebuggerDisplay("Count = {count}")]
class MyHashtable
{
public int count = 4;
}
Cela peut être plus rapide que de remplacer ToString
, mais cela ne vous permet toujours pas de choisir des champs, vous devez les taper.