Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christophe Lephay
"Jean-Luc M." a écrit dans le message de news:
Bonjour
Sous VS2005 express, je tape le mot exception et la génération automatique de code me donne ça:
[global::System.Serializable] public class MonException : Exception {
public MonException() {
}
public MonException(string message) : base(message) {
}
Toujours aussi newb', j'ai du mal à comprendre la syntaxe
public MonException(string message) : base(message)
le : base(message) , est-ce que ça veut dire que la procédure dérive d'une procédure spécifique ? Comme MonException descend de Exception ?
Non, c'est un appel explicite au constructeur. Le constructeur de la classe de base est toujours appelé avant le constructeur de la classe dérivée. Lorsque cet appel n'est pas spécifié, c'est le constructeur par défaut (sans paramètres) qui est appelé. On est obligé d'expliciter l'appel au constructeur de la classe de base dès lors qu'on veut lui transmettre un paramètre.
Ainsi, MonException( string message ) : base( message ) indique que c'est le constructeur de la classe de base prenant un string en paramètre qui doit être appelé, et non le constructeur par défaut.
A contrario, dans le premier constructeur MonException(), le constructeur de la classe de base qui sera appelé est le constructeur par défaut.
"Jean-Luc M." <nospam@nospam.com> a écrit dans le message de news:
mn.a3bb7d7bdad85031.1476@nospam.com...
Bonjour
Sous VS2005 express, je tape le mot exception et la génération automatique
de code me donne ça:
[global::System.Serializable]
public class MonException : Exception
{
public MonException()
{
}
public MonException(string message)
: base(message)
{
}
Toujours aussi newb', j'ai du mal à comprendre la syntaxe
public MonException(string message) : base(message)
le : base(message) , est-ce que ça veut dire que la procédure dérive d'une
procédure spécifique ? Comme MonException descend de Exception ?
Non, c'est un appel explicite au constructeur. Le constructeur de la classe
de base est toujours appelé avant le constructeur de la classe dérivée.
Lorsque cet appel n'est pas spécifié, c'est le constructeur par défaut (sans
paramètres) qui est appelé. On est obligé d'expliciter l'appel au
constructeur de la classe de base dès lors qu'on veut lui transmettre un
paramètre.
Ainsi, MonException( string message ) : base( message ) indique que c'est le
constructeur de la classe de base prenant un string en paramètre qui doit
être appelé, et non le constructeur par défaut.
A contrario, dans le premier constructeur MonException(), le constructeur de
la classe de base qui sera appelé est le constructeur par défaut.
Sous VS2005 express, je tape le mot exception et la génération automatique de code me donne ça:
[global::System.Serializable] public class MonException : Exception {
public MonException() {
}
public MonException(string message) : base(message) {
}
Toujours aussi newb', j'ai du mal à comprendre la syntaxe
public MonException(string message) : base(message)
le : base(message) , est-ce que ça veut dire que la procédure dérive d'une procédure spécifique ? Comme MonException descend de Exception ?
Non, c'est un appel explicite au constructeur. Le constructeur de la classe de base est toujours appelé avant le constructeur de la classe dérivée. Lorsque cet appel n'est pas spécifié, c'est le constructeur par défaut (sans paramètres) qui est appelé. On est obligé d'expliciter l'appel au constructeur de la classe de base dès lors qu'on veut lui transmettre un paramètre.
Ainsi, MonException( string message ) : base( message ) indique que c'est le constructeur de la classe de base prenant un string en paramètre qui doit être appelé, et non le constructeur par défaut.
A contrario, dans le premier constructeur MonException(), le constructeur de la classe de base qui sera appelé est le constructeur par défaut.
Jean-Luc M.
>> [global::System.Serializable]
Ainsi, MonException( string message ) : base( message ) indique que c'est le constructeur de la classe de base prenant un string en paramètre qui doit être appelé, et non le constructeur par défaut.
A contrario, dans le premier constructeur MonException(), le constructeur de la classe de base qui sera appelé est le constructeur par défaut.
Ok, je comprends. C'est un moyen de court-circuiter le constructeur par défaut. Merci pour cette explication
Est-ce que je peux abuser un peu et demander une rapide explication sur
[global::System.Serializable]
?
J'ai compris la notion de serializable, mais à nouveau la syntaxe employée me laisse perplexe, surtout le mot global
-- J-L M. (Alphomega) ICQ: 149635116 Pour m'écrire, cliquer le lien ci-dessous http://cerbermail.com/?G5iYdBb2Ce
>> [global::System.Serializable]
Ainsi, MonException( string message ) : base( message ) indique que c'est le
constructeur de la classe de base prenant un string en paramètre qui doit
être appelé, et non le constructeur par défaut.
A contrario, dans le premier constructeur MonException(), le constructeur de
la classe de base qui sera appelé est le constructeur par défaut.
Ok, je comprends. C'est un moyen de court-circuiter le constructeur par
défaut. Merci pour cette explication
Est-ce que je peux abuser un peu et demander une rapide explication
sur
[global::System.Serializable]
?
J'ai compris la notion de serializable, mais à nouveau la syntaxe
employée me laisse perplexe, surtout le mot global
--
J-L M. (Alphomega)
ICQ: 149635116
Pour m'écrire, cliquer le lien ci-dessous
http://cerbermail.com/?G5iYdBb2Ce
Ainsi, MonException( string message ) : base( message ) indique que c'est le constructeur de la classe de base prenant un string en paramètre qui doit être appelé, et non le constructeur par défaut.
A contrario, dans le premier constructeur MonException(), le constructeur de la classe de base qui sera appelé est le constructeur par défaut.
Ok, je comprends. C'est un moyen de court-circuiter le constructeur par défaut. Merci pour cette explication
Est-ce que je peux abuser un peu et demander une rapide explication sur
[global::System.Serializable]
?
J'ai compris la notion de serializable, mais à nouveau la syntaxe employée me laisse perplexe, surtout le mot global
-- J-L M. (Alphomega) ICQ: 149635116 Pour m'écrire, cliquer le lien ci-dessous http://cerbermail.com/?G5iYdBb2Ce
Christophe Lephay
"Jean-Luc M." a écrit dans le message de news:
Est-ce que je peux abuser un peu et demander une rapide explication sur
[global::System.Serializable]
?
J'ai compris la notion de serializable, mais à nouveau la syntaxe employée me laisse perplexe, surtout le mot global
J'ai découvert c# il y a peu et ne suis donc pas tout à fait certain. Ce qu'il me *semble*, c'est que :
* les attributs entre [] sont un moyen de demander au compilateur (ou au préprocesseur, je sais pas trop) d'ajouter du code spécifique, de manière à rendre la classe sérialisable dans cet exemple.
Le global:: est un moyen d'éviter les conflits de namespace, en spécifiant le namespace System depuis la "racine", comme dans l'exemple suivant :
namespace A { class C {} ... }
namespace B { namespace A { class C {} } ... }
Si tu fais reférences à A.C dans ton namespace B, ce sera B.A.C qui sera reférencé, tandis que global::A.C y fera reférence à celui qui est au dehors (à vérifier - j'ai pas les moyens de le faire actuellement).
"Jean-Luc M." <nospam@nospam.com> a écrit dans le message de news:
mn.aa6f7d7be6ac68f8.1476@nospam.com...
Est-ce que je peux abuser un peu et demander une rapide explication sur
[global::System.Serializable]
?
J'ai compris la notion de serializable, mais à nouveau la syntaxe employée
me laisse perplexe, surtout le mot global
J'ai découvert c# il y a peu et ne suis donc pas tout à fait certain. Ce
qu'il me *semble*, c'est que :
* les attributs entre [] sont un moyen de demander au compilateur (ou au
préprocesseur, je sais pas trop) d'ajouter du code spécifique, de manière à
rendre la classe sérialisable dans cet exemple.
Le global:: est un moyen d'éviter les conflits de namespace, en spécifiant
le namespace System depuis la "racine", comme dans l'exemple suivant :
namespace A
{
class C {}
...
}
namespace B
{
namespace A
{
class C {}
}
...
}
Si tu fais reférences à A.C dans ton namespace B, ce sera B.A.C qui sera
reférencé, tandis que global::A.C y fera reférence à celui qui est au dehors
(à vérifier - j'ai pas les moyens de le faire actuellement).
Est-ce que je peux abuser un peu et demander une rapide explication sur
[global::System.Serializable]
?
J'ai compris la notion de serializable, mais à nouveau la syntaxe employée me laisse perplexe, surtout le mot global
J'ai découvert c# il y a peu et ne suis donc pas tout à fait certain. Ce qu'il me *semble*, c'est que :
* les attributs entre [] sont un moyen de demander au compilateur (ou au préprocesseur, je sais pas trop) d'ajouter du code spécifique, de manière à rendre la classe sérialisable dans cet exemple.
Le global:: est un moyen d'éviter les conflits de namespace, en spécifiant le namespace System depuis la "racine", comme dans l'exemple suivant :
namespace A { class C {} ... }
namespace B { namespace A { class C {} } ... }
Si tu fais reférences à A.C dans ton namespace B, ce sera B.A.C qui sera reférencé, tandis que global::A.C y fera reférence à celui qui est au dehors (à vérifier - j'ai pas les moyens de le faire actuellement).