Créer des classe string

Je veux créer ma propre Adresse e-mail de classe qui agit comme une classe string.

Donc, je tiens à faire ce

private EMailAddress _emailAddress = "[email protected]";

au lieu de

private EMailAddress _emailAddress = new EMailAddress("[email protected]");

Est-il un moyen pour accomplir ce que je veux, ou je dois utiliser la seconde solution. Depuis que la chaîne est scellé, je ne peux pas l'utiliser, et l'opérateur = ne peut pas être surchargé, donc je suis à court d'idées de comment résoudre ce problème....

  • Si ça ressemble à une chaîne, il devrait être une chaîne de caractères. Je ne suis pas sûr que c'est possible et même est une bonne idée.
  • Est la classe string défectueux?
  • Pas on pourrait s'attendre à voir ce genre de chose. Il suffit de créer votre propre classe.
  • Ouais, c'est vraiment une idée terrible.
  • Juste au sujet de tout ce qui peut ressembler à un cordes, devrions-nous qu'avec des cordes? Une adresse e-mail a des propriétés différentes d'une chaîne de caractères. "[email protected]" peut-être une adresse e-mail et un string, "poisson" ne peut pas être une adresse de courriel. Un nom d'hôte de la propriété ou une CheckMxRecord méthode fait plus de sens pour une adresse e-mail qu'une chaîne de caractères. Dans le même temps, il est assez proche d'une ficelle pour faire la conversion implicite raisonnable. Pas sûr que c'est une bonne idée (besoin d'en connaître plus sur la classe et de son utilisation), mais il n'est certainement pas automatiquement une mauvaise.
  • Bien ce que je voulais, c'était seulement une classe d'vérifiez que la "chaîne" qui est entré est vérifié comme une adresse e-mail valide. Et puis j'ai pensé qu'il serait plus facile de faire alternativ 1 au lieu de alternativ 2.
  • Au contraire, c'est une très bonne idée. J'ai besoin de ce tous les temps lorsque vous travaillez avec DDD code. Un type fort contribue à faire une différence entre un "prénom" et "nom", par exemple... Dans le bon vieux pascal il y a un type MyType = type string; qui permet à cette même directement. Je m'ennuie de cette en C#. Je comprends la question, et que la création d'une nouvelle classe dans de tels cas pourraient être évités.
  • Pour tous ceux qui pense que c'est un mauvaise idée, de considérer les Énumérations. Une part importante de la valeur de l'Option est d'ajouter des informations de type de ce que sont autrement entiers.

InformationsquelleAutor Magnus Gladh | 2010-08-08