Les objets en C#

En C++, on connait des objets comme "array", "list", "tuple", "vector" mais alors quels sont ces objets en C# ? Quels sont les objets de la librairie standard du C# ? C'est la question que j'ai envie de me poser aujourd'hui.

Les Objets en langage C#
Les Objets en langage C#
Il y a un peu de confusion entre "programmation objet" et "les objets en C#". En langage C# on trouve notamment à la rubrique objets :

MSDN - Objets (Guide de programmation C#)
Comparaison entre Class et Struct, les Class sont des types référence et les Struct sont des types valeur.

Programmation orientée objet, pour mémoire :
L’encapsulation signifie qu’un groupe de propriétés, méthodes et autres membres corrélés est traité comme une unité ou un objet unique.
L’héritage décrit la possibilité de créer des classes à partir d’une classe existante.
Le polymorphisme signifie que plusieurs classes peuvent être utilisées de manière interchangeable, même si chacune des classes implémente les mêmes propriétés ou méthodes de manière différente.

MSDN - Programmation orientée objet (C#)
Rappel des concepts de programmation objet :

Interface, delegate, champ et propriétés, sealed, abstract

Modificateurs d’accès et niveaux d’accès
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 peut accéder au type ou au membre.
protected Seul le code de la même classe ou d'une classe dérivée 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 Tout code du même assembly ou toute classe dérivée dans un autre assembly peut accéder au type ou au membre.
private protected  Le code de la même classe ou d'une classe dérivée peut accéder au type ou au membre dans l’assembly de la classe de base.

Substitution de membres
virtual Autorise la substitution d'un membre de classe dans une classe dérivée.
override Substitue un membre virtuel (substituable) défini dans la classe de base.
abstract Requiert qu'un membre de classe soit substitué dans la classe dérivée.
new, modificateur Masque un membre hérité d'une classe de base.

OPENCLASSROOMS - Programmez en orienté objet avec C#
Cours rapides et efficaces sur la programmation objet (POO)

Et maintenant avec tout ça nous n'avons pas encore vu d'objet C# à proprement parlé.

Les Objets en C#

On trouve le Tuple
Mais c'est plutôt un "concept C#" qu'un objet et c'est d'ailleurs un objet assez complexe , il me fait penser à l'objet "élastique".

Du coup je me retrouve à réviser un petit peu mon C# Objet et je trouve la page suivante :

MSDN - Object.Equals Method
Complexe déjà non ? Pour des Structs la fonction Equals comparera les valeurs, on dit que struct est un type par valeur tandis que pour des Class Equals comparera les références. Autrement dit pour comparer des Class il veut mieux dériver de l'interface IComparable et implémenter la fonction overridée CompareTo.

On fait de la POO mais toujours pas d'objets. Si je cherche "Librairies en C#.NET" je tombe sur des livres ???!

To Be Continued

Aucun commentaire:

Enregistrer un commentaire

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.