Comment faire pour que le constructeur d'une classe décide de ne pas créer
l'objet et que new retourne finalement "null" ?
Cela est fréquent que les conditions d'initialisation vraisemblable d'un
objet ne soient pas remplies, je souhaite alors que l'objet ne soit pas crée.
Par exemple un objet ne doit pouvoir se créer que si la valeur
d'initialisation de son champs A est supérieure à celle de son champs B :
public class maClass
{ private int A;
private int B;
public maClass(int a, int b)
{ if(a>b) {A=a; B=b;}
else // l'objet ne doit pas se créer
}
}
APPEL :
maClass obj = new maClass(10,100); // je souhaite que obj soit = à null
J'ai essayé avec dispose() mais j'ai du mal... d'autant que ma classe hérite
d'une autre. Merci de m'indiquer si possible le code pour l'exemple cité plus
haut.
Tu peux lever une exception dans le constructeur, ou bien faire une méthode init() qui devra être appelée après l'ins tanciation de ta classe.
cyrille
Ambassadeur Kosh
> Comment faire pour que le constructeur d'une classe décide de ne pas créer l'objet et que new retourne finalement "null" ? Cela est fréquent que les conditions d'initialisation vraisemblable d'un objet ne soient pas remplies, je souhaite alors que l'objet ne soit pas
crée.
Par exemple un objet ne doit pouvoir se créer que si la valeur d'initialisation de son champs A est supérieure à celle de son champs B :
ça n'a pas de sens de resoudre ça comme ça. si les conditions ne sont pas remplies, lance une exception. c'est à ranger dans le meme tiroir que renvoyer un booleen qui dit si l'execution d'une fonction s'est bien passée ou pas...
try { Dummy dummy = new Dummy(25,63) ; // hop, ça crash, et si ça a crashé, l'objet dummy sera hors de portée // semantiquement, c'est le plus juste } catch(ArgumentException exception) {
}
> Comment faire pour que le constructeur d'une classe décide de ne pas créer
l'objet et que new retourne finalement "null" ?
Cela est fréquent que les conditions d'initialisation vraisemblable d'un
objet ne soient pas remplies, je souhaite alors que l'objet ne soit pas
crée.
Par exemple un objet ne doit pouvoir se créer que si la valeur
d'initialisation de son champs A est supérieure à celle de son champs B :
ça n'a pas de sens de resoudre ça comme ça.
si les conditions ne sont pas remplies, lance une exception.
c'est à ranger dans le meme tiroir que renvoyer un booleen qui dit si
l'execution d'une fonction s'est bien passée ou pas...
try
{
Dummy dummy = new Dummy(25,63) ;
// hop, ça crash, et si ça a crashé, l'objet dummy sera hors de portée
// semantiquement, c'est le plus juste
}
catch(ArgumentException exception)
{
> Comment faire pour que le constructeur d'une classe décide de ne pas créer l'objet et que new retourne finalement "null" ? Cela est fréquent que les conditions d'initialisation vraisemblable d'un objet ne soient pas remplies, je souhaite alors que l'objet ne soit pas
crée.
Par exemple un objet ne doit pouvoir se créer que si la valeur d'initialisation de son champs A est supérieure à celle de son champs B :
ça n'a pas de sens de resoudre ça comme ça. si les conditions ne sont pas remplies, lance une exception. c'est à ranger dans le meme tiroir que renvoyer un booleen qui dit si l'execution d'une fonction s'est bien passée ou pas...
try { Dummy dummy = new Dummy(25,63) ; // hop, ça crash, et si ça a crashé, l'objet dummy sera hors de portée // semantiquement, c'est le plus juste } catch(ArgumentException exception) {
}
Mitsuru FURUTA [Ms]
Bonjour,
Une solution couramment employée est de passer par une méthode statique de la classe qui renvoie (ou pas) une instance selon les conditions. Exemple: File f = File.Create();
Bonne continuation,
Mitsuru FURUTA [Microsoft FRANCE]
"ThierryP" <thierry_paul(a_virer)@tele2.fr> wrote in message news:
Comment faire pour que le constructeur d'une classe décide de ne pas créer l'objet et que new retourne finalement "null" ? Cela est fréquent que les conditions d'initialisation vraisemblable d'un objet ne soient pas remplies, je souhaite alors que l'objet ne soit pas
crée.
Par exemple un objet ne doit pouvoir se créer que si la valeur d'initialisation de son champs A est supérieure à celle de son champs B :
public class maClass { private int A; private int B; public maClass(int a, int b) { if(a>b) {A=a; B=b;} else // l'objet ne doit pas se créer } }
APPEL : maClass obj = new maClass(10,100); // je souhaite que obj soit = à null
J'ai essayé avec dispose() mais j'ai du mal... d'autant que ma classe
hérite
d'une autre. Merci de m'indiquer si possible le code pour l'exemple cité
plus
haut.
-- Thierry PAUL
Bonjour,
Une solution couramment employée est de passer par une méthode statique de
la classe qui renvoie (ou pas) une instance selon les conditions. Exemple:
File f = File.Create();
Bonne continuation,
Mitsuru FURUTA [Microsoft FRANCE]
"ThierryP" <thierry_paul(a_virer)@tele2.fr> wrote in message
news:4BC44833-8D08-434D-B862-C3C707BFD2E4@microsoft.com...
Comment faire pour que le constructeur d'une classe décide de ne pas créer
l'objet et que new retourne finalement "null" ?
Cela est fréquent que les conditions d'initialisation vraisemblable d'un
objet ne soient pas remplies, je souhaite alors que l'objet ne soit pas
crée.
Par exemple un objet ne doit pouvoir se créer que si la valeur
d'initialisation de son champs A est supérieure à celle de son champs B :
public class maClass
{ private int A;
private int B;
public maClass(int a, int b)
{ if(a>b) {A=a; B=b;}
else // l'objet ne doit pas se créer
}
}
APPEL :
maClass obj = new maClass(10,100); // je souhaite que obj soit = à null
J'ai essayé avec dispose() mais j'ai du mal... d'autant que ma classe
hérite
d'une autre. Merci de m'indiquer si possible le code pour l'exemple cité
Une solution couramment employée est de passer par une méthode statique de la classe qui renvoie (ou pas) une instance selon les conditions. Exemple: File f = File.Create();
Bonne continuation,
Mitsuru FURUTA [Microsoft FRANCE]
"ThierryP" <thierry_paul(a_virer)@tele2.fr> wrote in message news:
Comment faire pour que le constructeur d'une classe décide de ne pas créer l'objet et que new retourne finalement "null" ? Cela est fréquent que les conditions d'initialisation vraisemblable d'un objet ne soient pas remplies, je souhaite alors que l'objet ne soit pas
crée.
Par exemple un objet ne doit pouvoir se créer que si la valeur d'initialisation de son champs A est supérieure à celle de son champs B :
public class maClass { private int A; private int B; public maClass(int a, int b) { if(a>b) {A=a; B=b;} else // l'objet ne doit pas se créer } }
APPEL : maClass obj = new maClass(10,100); // je souhaite que obj soit = à null
J'ai essayé avec dispose() mais j'ai du mal... d'autant que ma classe
hérite
d'une autre. Merci de m'indiquer si possible le code pour l'exemple cité