Articles of c #

Efficacité sur une plate-forme 64 bits: indexation vs pointeur 32 bits

Dans l’un de ses discours, Andrei Alexandrescu suggère que, sur une plate-forme 64 bits, l’utilisation de l’indexation 32 bits est plus rapide que l’utilisation d’un pointeur brut: Page 16: http://www.slideshare.net/andreialexandrescu1/three-optimization-tips-for-c-15708507 Sur son compte Facebook, il est plus précis et dit: “Préférer l’indexation des tableaux à des pointeurs (celui-ci semble s’inverser tous les dix ans).” J’ai […]

Comment faire en sorte que les optimisations du compilateur n’introduisent pas de risque de sécurité?

Je dois écrire un service Windows qui traite à certains moments des données confidentielles (telles que des codes PIN, des mots de passe, etc.). Ces informations sont nécessaires pour une très courte durée: elles sont généralement envoyées presque immédiatement à un lecteur de carte à puce. Considérons ce morceau de code: { std::ssortingng password = […]

Version générique de Enum.Parse en C #

Je me suis régulièrement demandé pourquoi C # n’a pas encore implémenté un Generic Enum.Parse Disons que j’ai enum MyEnum { Value1, Value2 } Et à partir d’une entrée de fichier XML / DB, je souhaite créer un Enum. MyEnum val = (MyEnum)Enum.Parse(typeof(MyEnum), “value1”, true); N’aurait-il pas pu être mis en œuvre comme quelque chose […]

Appel de la méthode originale avec Moq

J’ai un ProductRepository avec 2 méthodes, GetAllProducts et GetProductByType, et je veux tester la logique à GetProductByType. En interne, GetProductByType effectue un appel à GetAllProducts, puis filtre les bons. public virtual IEnumerable GetAllProducts() { //returns all products in memory, db etc } public virtual IEnumerable GetProductsByType(ssortingng type) { return (from p in GetAllProducts() where p.Type […]

Est-ce que gcc ou clang corrige ce comportement?

J’ai un petit programme de jouets: static int value = 0; int function(int &value=value) { return value; } int main() { function(); } Comstackr avec g ++ 7.2: g ++ -std = c ++ 11 -Wall -Wextra test.cc -o test Aucun problème. Comstackr avec clang ++ – 3.9: clang ++ – 3.9 -std = c […]

Est-ce que cela implique une substitution?

Si je comprends bien, le mot-clé override indique qu’une déclaration donnée implémente une méthode virtual base et que la compilation doit échouer si aucune méthode de base correspondante n’a été trouvée. Ma compréhension du mot-clé final est qu’il indique au compilateur qu’aucune classe ne doit remplacer cette fonction virtual . Donc, est override final redondant? […]

Itération sur Enum non incrémental

Avant de vous demander, j’ai regardé et cherché ceci sur SO, et ne peut pas trouver une réponse solide. Je dois pouvoir effectuer une itération dynamic sur un enum qui comporte des valeurs non incrémentielles, par exemple: typedef enum { CAPI_SUBTYPE_NULL = 0, /* Null subtype. */ CAPI_SUBTYPE_DIAG_DFD = 1, /* Data Flow diag. */ […]

Quel est le résultat de a & b?

Cela est gênant, mais l’opérateur AND au niveau du bit est défini dans la norme C ++ comme suit (accentuation mienne). Les conversions arithmétiques habituelles sont effectuées; le résultat est la fonction ET binary de ses opérandes . L’opérateur ne s’applique qu’aux opérandes d’énumération intégrale ou non. Cela me semble un peu dénué de sens. […]

Priorité de l’opérateur vs ordre d’évaluation

Les termes «priorité d’opérateur» et «ordre d’évaluation» sont des termes très couramment utilisés dans la programmation et extrêmement importants pour un programmeur. Et, pour autant que je les comprenne, les deux concepts sont étroitement liés; on ne peut pas faire sans l’autre en parlant d’expressions. Prenons un exemple simple: int a=1; // Line 1 a […]

Désérialisation du tableau JSON en object .NET fortement typé

Quand je peux appeler l’API de tierce partie et récupérer une seule classe de données, tout se déserte en utilisant ce code TheUser me = jsonSerializer.Deserialize(response, typeof(TheUser)) as TheUser Le problème vient lorsque j’essaye de désérialiser le contenu de la réponse JSON qui est un tableau, tel que { “data”: [ { “name”: “A Jones”, […]