C# Système de types

Posted on January 29th, 2015

Categorie

Description

Types valeurs

Types simples

Signed integral: sbyte, short, int, long

Unsigned integral: byte, ushort, uint, ulong

Unicode characters: char

IEEE floating point: float, double

High-precision decimal: decimal

Boolean: bool

[[Énumérations]]

User-defined types of the form enum E {...}

[[Structures]]

User-defined types of the form struct S {...}

[[Nullables]]

Extensions of all other value types with a null value

Types références

[[Classes]]

Ultimate base class of all other types: object

Unicode strings: string

User-defined types of the form class C {...}

[[Interfaces]]

User-defined types of the form interface I {...}

[[Tableaux]]

Single- and multi-dimensional, for example, int[] and int[,]

[[Délégués]]

User-defined types of the form e.g. delegate int D(...)



C# Types simples

Posted on January 29th, 2015

Categories

Bits

Type

Gamme/Précision

Entiers signés

8

sbyte

–128...127

16

short

–32,768...32,767

32

int

–2,147,483,648...2,147,483,647

64

long

–9,223,372,036,854,775,808...9,223,372,036,854,775,807

Entiers non signés

8

byte

0...255

16

ushort

0...65,535

32

uint

0...4,294,967,295

64

ulong

0...18,446,744,073,709,551,615

Virgule flottante

32

float

1.5 × 10−45 to 3.4 × 1038, 7-digit precision

64

double

5.0 × 10−324 to 1.7 × 10308, 15-digit precision

Décimale

128

decimal

1.0 × 10−28 to 7.9 × 1028, 28-digit precision



C# modificateurs d'accès

Posted on January 29th, 2015


public

Tout autre code du même assembly ou d'un autre assembly qui y fait référence peut accéder au type ou au membre.

private

Seul le code de la même classe ou du même struct peut accéder au type ou au membre.

protected

Seul le code de la même classe ou du même struct, ou d'une classe dérivée de cette classe, peut accéder au type ou au membre.

internal

Tout code du même assembly, mais pas d'un autre assembly, peut accéder au type ou au membre.

Protected internal

Le type ou le membre est accessible par tout code de l'assembly dans lequel il est déclaré, ou à partir d'une classe dérivée dans un autre assembly. L'accès à partir d'un autre assembly doit avoir lieu dans une déclaration de classe qui dérive de la classe dans laquelle l'élément interne protégé est déclaré, et il doit avoir lieu via une instance du type de la classe dérivée.


Par défaut, si rien n'est spécifié, l'accès est réglé au plus restrictif. Les définitions de classes seront ainsi réglées à internal quand elles sont directement dans un namespace ou private s'il s'agit d'une classe imbriquée. Les méthodes et attributs seront réglés à private.

Pour plus d'information, voir la Documentation MSDN sur le sujet

Voir aussi les modificateurs d'accès pour les autre types



Programmation Android : Threads

Posted on October 30th, 2014

Les Threads Java Standard sont appropriés pour un usage sous Android, mais une attention particulière doit être portée à la mise à jour de l'interface utilisateur à partir d'un autre Thread. Android protège l'accès aux objets de l'interface utilisateur. Il faut donc déléguer l'action au Thread de l'interface utilisateur.

Le code suivant peut être utilisé pour encapsuler votre code :

    runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                          // Ici: Votre code accédant aux objets de l'interface utilisateur.
                    }
                });

Voir aussi TimerTask

Notions de Java: Énumérations

Posted on September 10th, 2014

Les énumérations permettent de définir un type de données contenant des valeurs provenant d'un ensemble fini.

public enum Jour {DIMANCHE, LUNDI, MARDI, MERCREDI, JEUDI, VENDREDI, SAMEDI}

Ces items sont des constantes, d'où le style MAJUSCULE utilisé ici.

Jour rendezVous = LUNDI;

Plus d'information:


Notions de Java: assert

Posted on September 9th, 2014

Programmation optimiste... avec un minimum de validation.

L'assertion permet de faire échouer un traitement si les prémisses ne sont pas au rendez-vous.

public Resultat achatEnGros(int quantite) {
  Resultat resultat = null;
assert quantite > 50 : "Quantité insuffisante pour un achat en gros";

resultat = new CommandeExterne(quantité);
return resultat; }

ici le programme lance une exception si les quantités sont insuffisantes pour se qualifier à un achat en gros.

Notions de Java: Sérialisation et désérialisation JSON

Posted on September 9th, 2014

Notions
  • assert
  • Jar
  • POJO
  • transient
  • final
Persistance de base

JSON = JavaScript Object Notation

Approche par implémentation d'interface

Approches par réflexion

Google GSON


Génération du modèle Java à partir d'un échantillon de données

Petits défis de sérialisation/désérialisation:
  • références circulaires
  • redondance des références
La solution à ces problèmes impose d'avoir un identifiant unique pour chaque instance. Si le modèle POJO ne possède pas déjà l'équivalent d'une clé primaire, il faudra en générer une.

Un aperçu de solution pour les références circulaires et la gestion de la redondance des instances référencées.


Notions de Java - Exemples: Communication UDP en Java

Posted on September 9th, 2014

Exercice démontrant:
  • Une communication UDP
  • La saisie de texte au clavier de la console
  • Conversion entre String et bloc d'octets
  • L'utilisation du try-catch-finally avec catch multiples



Internet - Historique et notions clés - Automne 2014

Posted on September 9th, 2014

Introduction de notions clés de l'internet et son évolution.







Stéphane Denis

Contrat Creative Commons
Ces articles produits par Stéphane Denis sur stephanedenis.cc sont mis à disposition selon les termes de la licence Creative Commons Paternité 4.0 International.