Livre C# étape par étape

ovarieswhynotSoftware and s/w Development

Jul 5, 2012 (4 years and 11 months ago)

260 views

Livre C# étape par étape
Chapter 2
type primitif tous des types valeurs ?
Define Assignment Rule, obligation de définir une valeur pour une variable, dans le cas
contraire erreur compilation
NaN & Infinity :
0.0/0.0 = NaN
NaN * 0 = NaN
Infinity * 0= 0
10 + NaN = NaN
10 + Infinity = Infinity
Division
5/2 = 2 (C# round the value down)
5/2.0 = 2.5 (converesion de 5 en double)
Modulo disponible sur tous les types !! Nouveauté
Prefix & Postfix
increment decrement
++count; prefix
count++;postfix
var(iant), changement impossible après déclarations
Chapter 3
Overload
Chapter 4
operators
equality == !=
realtional < > <= >=
logical || &&
Chapter 6
check or uncheck overflow
You can activate and disable overfl ow checking in Visual Studio 2008 by setting the project
properties. On the Project menu, click YourProject Properties (where YourProject is the
name of
your project). In the project properties dialog box, click the Build tab. Click the Advanced
button
in the lower-right corner of the page. In the Advanced Build Settings dialog box, select or
clear
the Check for arithmetic overfl ow/underfl ow check box.
int wontThrow = unchecked(int.MaxValue + 1);
int willThrow = checked(int.MaxValue + 1);
only for integer / long
chapter 7
default constructor public toto(){...}
si on crée notre propre constructeur (autre que le défaut) alors le défaut ne sera pas
automatiquement créé par le compilateur
partial
méthode instance/statique méthode de classe, static field
classe anonyme
permet de définir une classe sans nom, en spécifiant uniquement les field (que public et
obligatoirement initialisé) utilisé avec le var. Le compilateur se fie à l'ordre, le type et le
nom des fields contenu dans la classe pour en créer une nouvelle ou non
var anonym = new {Name="John", Age=42}
var other = new {Name="Flo",Age=34}
Ces deux variables utilisent la même classe
Chapter 8
Value type vs reference type
nullable
ref/out
stack/heap
Nullable types are actually reference types, and they are created on the heap.
Poser la question au prof sur les nullabe, fonctionne semble-t-il comme des types reference
mais pas vraiment finalement .... essaie avec le code
Boxing/unboxing
This automatic copying of an item from the stack to the heap is called boxing
is and as
is retourne true si l'objet est bien du type sinon false
as essaie de caster l'objet selon le type défini, si il ne peut pas le faire il retourne null
unsafe
chapter 9
création de nos propres types valeur, enumeration et structure
une enumeration peut être d'un autre type que int, ex shor ou byte
enum Season : short
{Sprint,Winter,Summer,...}
lors d'un dépassement de l'enum, le runtime le gère comme un int (dans le cas ou notre
enum est un int)
structure peut contenir des champs, des méthodes et un constructeur comme une classe
(mais une structure reste stockée dans la pile /stack)
System .Int32, System.float sont des structures, toute strucutre implémente .ToString()
pour les structures il n'est pas possible de déclarer un constructeur par défaut (sans param)
à la différence d'une classe. Il est nécessaire de setter tous les field de notre structure sinon
erreur de compilation (cela se produit si on crée notre propre constructeur) Il est impossible
d'initialiser un type lors de sa déclaration. (voir tableau différent page 176)
Chapter 10
copie de tableau
collection
queue, stack, arraylist.
queue et stack ne peuvent pas être setter lors de l'instanciation car pas de méthode add
hashtable, sortedlist
page 200 comparaison entre array et collections
Chapter 11
params
pas 2 params dans une même méthode, doit être le dernier paramètre
pas de tableau multi dimensionnel
pas d'overload possible entre
public static int Min(int[] paramlists)
public static int Min(params int[] paramlists)
pas de ref ni de out
priorisation sur les méthode non params
Chapter 12
lors de l'héritage si l'on ne call pas nous même le base() le compilateur le fait lui même,
c'est pourquoi si on a créer notre propre constructeur pour l'objet mêre il faut caller base
sur le constructeur mêre avec les bons paramètre, hypra intéressant !! Revoir page 221
class Horse : Mammal
{
public Horse(string name): base()
{
...
}
...
}
new key word (hidding)
virtual/override
méthode d'extension
Chapitre 13
inteface, permet de définir un contrat
classe abstract, permet de définir une généricité de fonctionnement mais sans pouvoir
instancier un objet du type de la classe abstract.
méthode abstract, obliger la définition d'une méthode dans une classe fille, à l'instar d'une
classe normale avec virtual, elle ne contient aucun body.
sealed, méthode ou classe que l'on ne peut pas hérité. On ne peut marquer sealed que des
méthode overidées
une interface introduit le nom d'une méthode
une méthode virtuelle est la première implémentation de la méthode
un override est une reecriture de la méthode
sealed est la dernière implémentation d'une méthode/classe