Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Constructeur

3 réponses
Avatar
J-L
Bonjour,

Je viens de lire les nouveautés du C# 3.0 sur le site:

http://www.dotnet-project.com/Articles-le-sucre-syntaxique-du-c-3-0.54.aspx

J'ai un souci sur les constructeurs avec paramètres nommés.

class Bonhomme
{

internal string Nom
{
get;
set;
}

internal string Prenom
{
get;
set;
}

internal int Age
{
get;
set;
}
}


Bonhomme bh = new Bonhomme( Age = 2);

Pour la ligne ci-dessus, vc2008 express me dit que:

"Erreur 1 Le nom 'Age' n'existe pas dans le contexte actuel "

Faut-il ajouter quelque chose au projet pour que cela fonctionne ?

J-L

3 réponses

Avatar
Gilles Kohl [MVP]
On Mon, 03 Mar 2008 14:45:41 +0100, J-L
wrote:

Bonjour,

Je viens de lire les nouveautés du C# 3.0 sur le site:

http://www.dotnet-project.com/Articles-le-sucre-syntaxique-du-c-3-0.54.aspx

J'ai un souci sur les constructeurs avec paramètres nommés.

class Bonhomme
{

internal string Nom
{
get;
set;
}

internal string Prenom
{
get;
set;
}

internal int Age
{
get;
set;
}
}


Bonhomme bh = new Bonhomme( Age = 2);

Pour la ligne ci-dessus, vc2008 express me dit que:

"Erreur 1 Le nom 'Age' n'existe pas dans le contexte actuel "

Faut-il ajouter quelque chose au projet pour que cela fonctionne ?



Est-ce ceci que vous avez en tête?

class Bonhomme
{

internal string Nom
{
get;
set;
}

internal string Prenom
{
get;
set;
}

internal int Age
{
get;
set;
}
}


class Program
{
static void Main(string[] args)
{
Bonhomme bh = new Bonhomme() { Age = 2 };
}
}

Amicalement,
Gilles [MVP]
Avatar
Loïc Berthollet
Bonjour,
Les parenthèses ne sont mêmes pas nécessaire : on pourrait s'en servir pour
appeler un constructeur avec paramètre s'il y en avait un de défini...
On doit donc pouvoir écrire directement :
Bonhomme bh = new Bonhomme { Age = 2 };


Loïc

"Gilles Kohl [MVP]" <no_email_available@> a écrit dans le message de groupe
de discussion :
On Mon, 03 Mar 2008 14:45:41 +0100, J-L
wrote:

Bonjour,

Je viens de lire les nouveautés du C# 3.0 sur le site:

http://www.dotnet-project.com/Articles-le-sucre-syntaxique-du-c-3-0.54.aspx

J'ai un souci sur les constructeurs avec paramètres nommés.

class Bonhomme
{

internal string Nom
{
get;
set;
}

internal string Prenom
{
get;
set;
}

internal int Age
{
get;
set;
}
}


Bonhomme bh = new Bonhomme( Age = 2);

Pour la ligne ci-dessus, vc2008 express me dit que:

"Erreur 1 Le nom 'Age' n'existe pas dans le contexte actuel "

Faut-il ajouter quelque chose au projet pour que cela fonctionne ?



Est-ce ceci que vous avez en tête?

class Bonhomme
{

internal string Nom
{
get;
set;
}

internal string Prenom
{
get;
set;
}

internal int Age
{
get;
set;
}
}


class Program
{
static void Main(string[] args)
{
Bonhomme bh = new Bonhomme() { Age = 2 };
}
}

Amicalement,
Gilles [MVP]



Avatar
J-L
C'était bien ça, merci !

Mes yeux m'ont trahi, j'ai vu des parenthèses où il fallait voir des
accolades ...

ça marche cette fois !