bonjour
je voulais savoir si dans une classe hérité le mybase.new était implicite sans le public sub new
ou s'il fallait le spécifier ...
Bonjour.
Je ne pense pas que le mybase.new soit implicite mais qu'en fait le constructeur d'une grande majorité de classes dont on peut hériter ne nécessite pas d'initialisation particuliére
--> Le New entraîne donc simplement la création de l'instance sans rien de plus.
Quand le mybase est nécessaire (pas de sub new sans argument), vs 2005 le dit de suite...
Exemple :
Là le mybase.new est obligatoire car le FileStream n'a pas de constructeur sans argument (autrement dit, pas de constructeur sans initialisation de quelque chose).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Public Class toto Inherits System.IO.FileStream Public Sub New() MsgBox("test") End Sub End Class
Cdt.
Le constructeur de la classe parent est automatiquement appelé lors de la construction d'un objet.
Oui je sais, c'est en C# mais le fonctionnement est identique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 using System; namespace ApplicationTest { class Program { static void Main(string[] args) { Test1 a = new Test1(); Test2 b = new Test2(); Console.ReadLine(); } } class Test1 { public Test1() { Console.WriteLine("Test1 constructor"); } } class Test2 : Test1 { public Test2() { Console.WriteLine("Test2 constructor"); } } }
Voici le résultat produit :
EDIT : En supprimant le constructeur de Test2, on obtient deux fois le message Test1 constructor à l'éxecution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Test1 constructor Test1 constructor Test2 constructor
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
Parce que la classe de base ne définit pas de constructeur sans argument accessible publiquement.
PS : Tu ne vas pas me dire que le code que j'ai posté est illisible tout de même, je ne fais pas de VB.NET mais pour un programme aussi simple, ça ne doit pas changer du tout au tout, si ?![]()
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
oui c'est lisible mais c'est vraiment un syntaxe de m**** pas intuitive sur le coup
class Test2 : Test1
est quand meme moins évident que
class Test2
inherits Test1
ensuite Publis Sub New on comprends mieux que c'est l'instanciation par rapport à
public Test2()
et puis je préfère les begin et end que { et } qui font un paté de symboles dans une page
+1 privilégie donc la deuxieme syntaxe ^^Envoyé par sperot51
+2 je ne savais meme pas que cette ecriture aussi ambigue existaitEnvoyé par sperot51
![]()
+3 ca c'est sur mais il faut faire avec !Envoyé par sperot51
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+
+
=
Ne pas oublier le Tag!
Ouais bon c'est pas la peine de commencer à troller non plus les gars.![]()
Je disais simplement à sperot51 qu'il ne faut pas être intégriste non plus, la syntaxe C# est différente, mais la question de savoir si c'est intuitif ou pas, n'est pas importante. Tout dépend du langage avec lequel tu as commencé.![]()
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
On ne troll pas, j'approuve tout simplement la réaction de Sperot51 qui est la meme que la mienne.Envoyé par SaumonAgile
Oui c'est différent mais il est clair que je trouve le C# beaucoup moins intuitif que le vb.net mais c'est une question de goutEnvoyé par SaumonAgile
![]()
Bref, c'est pas le sujet ici.
As t-on répondu à ta question Sperot51 ? Si oui, don't forget to put the tagThanks
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+
+
=
Ne pas oublier le Tag!
Oki. Chacun son point de vu![]()
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+
+
=
Ne pas oublier le Tag!
Partager