Come condividere lo stesso oggetto tra altri due oggetti? Per esempio, mi piacerebbe qualcosa in quel sapore:Come condividere una variabile tra due classi?
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"... :(
Ecco, io non voglio dare un ref al metodo Bar. Quello che voglio ottenere è qualcosa che sarebbe simile a quella in C++:
class A
{
int* i;
public:
A(int* val);
};
A::A (int* val)
{
this->i = val;
}
ho letto c'è qualche Rif/out roba, ma non ho potuto ottenere quello che sto chiedendo qui. Ho potuto applicare solo alcune modifiche nello scope dei metodi in cui stavo usando gli argomenti di ref/out ... Ho letto anche che potremmo usare i puntatori, ma non c'è altro modo per farlo?
Nel proprio esempio specifico, le stringhe non sono un buon esempio poiché sono immutabili. – Ikaso