Comment partageriez-vous le même objet entre deux autres objets? Par exemple, je voudrais quelque chose dans ce goût:Comment partager une variable entre deux classes?
class A
{
private string foo_; // It could be any other class/struct too (Vector3, Matrix...)
public A (string shared)
{
this.foo_ = shared;
}
public void Bar()
{
this.foo_ = "changed";
}
}
...
// inside main
string str = "test";
A a = new A(str);
Console.WriteLine(str); // "test"
a.Bar();
Console.WriteLine(str); // I get "test" instead of "changed"... :(
Ici, je ne veux pas donner un arbitre à la méthode Bar. Ce que je veux réaliser quelque chose qui ressemblerait qu'en C++:
class A
{
int* i;
public:
A(int* val);
};
A::A (int* val)
{
this->i = val;
}
J'ai lu il y a quelques ref/des trucs, mais je ne pouvais pas obtenir ce que je demande ici. Je pouvais seulement appliquer quelques changements dans la portée des méthodes où j'utilisais des arguments ref/out ... J'ai aussi lu que nous pouvions utiliser des pointeurs, mais n'y a-t-il pas d'autre moyen de le faire?
Dans votre exemple en particulier, les chaînes ne sont pas un bon exemple car elles sont immuables. – Ikaso