¿Cómo compartirías el mismo objeto entre otros dos objetos? Por ejemplo, me gustaría algo en ese sabor:¿Cómo compartir una variable entre dos clases?
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"... :(
Aquí, no quiero dar una referencia al método de bar. Lo que quiero lograr es algo que se vería que en C++:
class A
{
int* i;
public:
A(int* val);
};
A::A (int* val)
{
this->i = val;
}
leí hay algo de ref/hacia fuera la materia, pero no pude conseguir lo que estoy pidiendo aquí. Solo pude aplicar algunos cambios en el alcance de los métodos donde estaba usando los argumentos de ref/out ... También leí que podíamos usar punteros, ¿pero no hay otra manera de hacerlo?
Específicamente en su ejemplo, las cadenas no son un buen ejemplo ya que son inmutables. – Ikaso