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

Débutant : interface toujours et encore

2 réponses
Avatar
Christian Hubert-Hugoud / weabow - Xtrem7 - Groobax
J'ai constaté que je ne pouvais pas stocker d'info dans une classe static
(élémentaire, mais j'avais oublié). Du coup je repasse ma Fabrique dans une
classe "normale", et je veux faire une interface. Et là j'ai une erreur :

la fabrique (la classe qui redevient "normale" :

namespace Xtrem7Engine
{
class X7 : IX7
{
string _seconds;
public string seconds
{
get { return _seconds; }
set { _seconds = value; }
}

public Ilogin GetNewlogin()
{
return new login();
}
public Itruc GetNewTruc()
{
return new truc();
}
}
}

son interface :

namespace Xtrem7Engine
{
public interface IX7
{
string seconds {get; set;}
Ilogin GetNewlogin();
Itruc GetNewTruc();
}
}

Tout ceci se compile bien dans la dll.

L'appel qui ne se compile pas (depuis l'appli qui utilise la dll) :
IX7 myX7 = new X7();

Error 1 The type 'Xtrem7Engine.X7' has no constructors defined

J'ai regardé sur le web mais je n'ai rien trouvé. J'ai tenté de mettre des
constructeurs, mais rien n'y fait. De plus je ne comprends pas où est
l'erreur.

Une idée ?

Excellente continuation

Christian Hubert-Hugoud

2 réponses

Avatar
Jérémy Jeanson
Bonjour Christian,

Peut tu en dire un peu plus sur la classe qui est à l'origine de ton
appel? IX7 myX7 = new X7();

Autre question au sujet de ta notion de stockage dans ta fabrique,
quel est ton objectif?

---
Jérémy Jeanson
MCP
http://www.jjeanson.fr
Avatar
Christian Hubert-Hugoud / weabow - Xtrem7 - Groobax
Merci de ta réponse.

Pour le stockage, j'ai trouvé : des propriétés feront l'affaire (j'ai pas
mal ramé, curieusement).

Pour l'instanciation, voici le code (bien que j'ai aussi la solution de
passer par une class static, qui fonctionne très bien) :

L'appel qui génère l'erreur :
IX7 X7 = new X7();

Error 1 The type 'Xtrem7Engine.X7' has no constructors defined
Error 2 'Xtrem7Engine.X7' is inaccessible due to its protection level
Error 3 'Xtrem7Engine.X7.X7()' is inaccessible due to its protection level

namespace Xtrem7Engine
{
public interface IX7
{
IcProfile ProfileGetNew();
}
}

namespace Xtrem7Engine
{
class X7 : IX7
{
string _seconds;
public string seconds
{
get { return _seconds; }
set { _seconds = value; }
}

public IcProfile ProfileGetNew()
{
return new cProfile();
}
}
}

namespace Xtrem7Engine
{
public interface IcProfile
{
string Test();
}

class cProfile : IcProfile
{
//string _Datas;
public string Test()
{
return "Coucou le test";
}
}
}


"Jérémy Jeanson" a écrit dans le message de
news:
Bonjour Christian,

Peut tu en dire un peu plus sur la classe qui est à l'origine de ton
appel? IX7 myX7 = new X7();

Autre question au sujet de ta notion de stockage dans ta fabrique,
quel est ton objectif?

---
Jérémy Jeanson
MCP
http://www.jjeanson.fr