Le downcasting signifie la conversion d'une classe de base (ou interface) vers une classe sous-classe ou feuille. Un exemple de downcast pourrait être si vous lancez à partir System.Objectd'un autre type. Le downcasting est impopulaire, peut-être une odeur de code: la doctrine orientée objet consiste à préférer, par exemple, la …
J'ai commencé à travailler dans une entreprise principalement orientée C #. Nous avons quelques personnes qui aiment Java et JRuby, mais une majorité de programmeurs ici aiment C #. J'ai été embauché parce que j'ai beaucoup d'expérience dans la construction d'applications Web et que je me tourne vers les nouvelles …
Donc, je ne sais pas si c'est une bonne ou une mauvaise conception de code, alors j'ai pensé que je ferais mieux de demander. Je crée souvent des méthodes qui traitent des données impliquant des classes et je fais souvent beaucoup de vérifications dans les méthodes pour m'assurer de ne …
J'essaie d'adhérer autant que possible au principe de responsabilité unique (SRP) et je me suis habitué à un certain modèle (pour le SRP sur les méthodes) qui repose fortement sur les délégués. J'aimerais savoir si cette approche est valable ou si elle pose de graves problèmes. Par exemple, pour vérifier …
J'ai récemment commencé à travailler dans un endroit avec des développeurs beaucoup plus âgés (environ 50 ans et plus). Ils ont travaillé sur des applications critiques de l’aviation où le système ne pouvait pas tomber en panne. En conséquence, le programmeur le plus âgé a tendance à coder de cette …
Il y a quelques mois, nous avons commencé à développer une application pour contrôler un équipement de test développé en interne et enregistrer un ensemble de mesures. Il devrait avoir une interface utilisateur simple, et nécessiterait probablement des threads en raison de l'enregistrement continu qui doit avoir lieu. Cette application …
Dans Visual Studio, je peux cliquer avec le bouton droit sur une interface et choisir d'implémenter une interface ou d'implémenter une interface explicitement. public class Test : ITest { public string Id // Generated by Implement Interface { get { throw new NotImplementedException(); } } string ITest.Id // Generated by …
Qu'est-ce qui est plus facile à comprendre, une grosse déclaration booléenne (assez complexe) ou la même déclaration divisée en méthodes de prédicats (beaucoup de code supplémentaire à lire)? Option 1, la grande expression booléenne: private static bool ContextMatchesProp(CurrentSearchContext context, TValToMatch propVal) { return propVal.PropertyId == context.Definition.Id && !repo.ParentId.HasValue || repo.ParentId …
Aujourd'hui, je me suis disputé avec quelqu'un. J'expliquais les avantages d'avoir un modèle de domaine riche par opposition à un modèle de domaine anémique. Et j'ai démontré mon point avec un cours simple ressemblant à ça: public class Employee { public Employee(string firstName, string lastName) { FirstName = firstName; LastName …
Je suis un peu confus par la documentation MSDN C # qui stipule que &et |sont des opérateurs logiques et qui &&et ||sont des opérateurs conditionnels. Je continuer à appeler &&, ||et les !opérateurs logiques, donc je me trompe?
En Java , il n'y a pas virtual, new, overridemots - clés pour la définition de la méthode. Ainsi, le fonctionnement d'une méthode est facile à comprendre. Si DerivedClass étend BaseClass et a une méthode portant le même nom et la même signature de BaseClass, le remplacement aura lieu lors …
Je travaille dans un magasin .Net, C # et j'ai un collègue qui insiste pour que nous utilisions des instructions Switch géantes dans notre code avec beaucoup de "Cas" plutôt que des approches plus orientées objet. Son argument remonte constamment au fait qu'une instruction Switch est compilée dans une "table …
Certains types de données algébriques permettent de résoudre facilement certains problèmes. Par exemple, un type de liste peut être exprimé de manière très succincte par: data ConsList a = Empty | ConsCell a (ConsList a) consmap f Empty = Empty consmap f (ConsCell a b) = ConsCell (f a) (consmap …
récemment, je suis tombé sur ce post de blog de monstres asp.net qui parle de problèmes liés à l'utilisation HttpClientde la manière suivante: using(var client = new HttpClient()) { } Selon l'article du blog, si nous disposons HttpClientaprès chaque demande, les connexions TCP peuvent rester ouvertes. Cela peut potentiellement conduire …
Je suis généralement d'accord avec la plupart des avertissements d'analyse de code et j'essaie de les respecter. Cependant, j'ai plus de difficultés avec celui-ci: CA1031: Ne pas intercepter les types d'exception générale Je comprends la raison d'être de cette règle. Mais, dans la pratique, si je veux faire la même …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.