C # Faire tout ce qui suit public / privé comme en C ++?

J’ai récemment commencé à apprendre le C #, mais j’ai des connaissances en C ++. Je me demandais comment je ferais quelque chose comme

class employee { public: .... ... methods ... .... private: .... ... private member variables .... .... } 

J’ai essayé de faire cela en C #, mais le “public: …” et le “privé: …” ne lui plaisent pas de tout faire après, que ce soit public ou privé.

De plus, j’ai vu qu’il y avait cette fonction get et set en C #, vous n’avez donc pas besoin de créer une variable membre privée, puis de créer une fonction pour renvoyer cette variable?

Pendant que j’y suis, comment créer des sous-classes en C #? En C #, les nouvelles classes sont ouvertes dans différents tabs. Je ne comprends donc pas comment le faire.

Vous ne pouvez pas rendre des “blocs” publics ou privés en C # comme vous le feriez en C ++, vous devrez append la visibilité (et l’implémentation) à chaque membre. En C ++, vous le feriez normalement;

 public: memberA(); memberB(); private: memberC(); 

… et implémentez vos membres ailleurs, alors qu’en C #, vous devez le faire;

 public memberA() { ...implement your function here... } public memberB() { ...implement your function here... } private memberC() { ...implement your function here... } 

En ce qui concerne les propriétés, voyez-les comme un set implémenté automatiquement et get méthodes que vous pouvez choisir de mettre en œuvre vous-même ou que le compilateur les implémente. Si vous souhaitez les implémenter vous-même, vous aurez toujours besoin du champ pour stocker vos données. Si vous le laissez au compilateur, le champ sera également généré.

L’inheritance fonctionne exactement de la même manière que si vous mettiez les choses dans le même fichier (ce qui n’est probablement pas une bonne idée pour les projets C ++ plus volumineux). Héritez simplement comme d’habitude, tant que vous êtes dans le même espace de noms ou que vous avez importé l’espace de noms de la classe de base, vous pouvez simplement hériter de manière transparente;

 using System.Collections; // Where IEnumerable is defined public class MyEnumerable : IEnumerable { // Just inherit like it ... // was in the same file. } 

1) Les modificateurs d’access en C # sont différents de C ++ en ce sens que vous devez spécifier explicitement un membre par classe.

http://msdn.microsoft.com/en-us/library/wxh6fsc7(v=vs.71).aspx

2) Les objects get, set que vous mentionnez font référence à C # Properties:

 class User { private ssortingng userName; public ssortingng UserName { get { return this.userName; } set { this.userName = value; } } } 

Veuillez noter que vous pouvez également utiliser les propriétés automatiquement implémentées http://msdn.microsoft.com/en-us/library/bb384054.aspx

3) Le sous-classement en C # se fait comme tel

 class Manager : Employee { //implementation goes here as usual } 

en C #, vous devrez spécifier le spécificateur d’access pour chaque méthode ou propriété. Si vous ne spécifiez pas, cela prend le spécificateur d’access par défaut.
Le spécificateur d’access par défaut pour les membres de la classe est privé et celui par défaut pour les éléments extérieurs à la classe est interne

 class MyClass{ //MyClass will be internal int MyProperty {get; set;} // MyProperty will be privare } 
  1. Non, tu ne peux pas. En C #, vous devez spécifier un accesseur pour chaque membre.

  2. Non vous ne le faites pas, ça s’appelle la Property

  3. Écris-le dans une autre classe

    classe SomeClass {

    } class SubClass: SomeClass {}