У вас есть два различных объекта, на которые ссылаются переменные a
и b
.Тот факт, что они оба являются подклассами одного и того же базового класса, не имеет значения.Чтобы изменение одного сказалось на другом, они либо должны знать друг о друге, либо оба знать о каком-то другом общем объекте.Например, вы могли бы иметь:
public class Int32Holder
{
public int Value { get; set; }
}
class Foo
{
private readonly Int32Holder valueHolder;
public int Value
{
get { return valueHolder.Value; }
set { valueHolder.Value = value; }
}
public Foo(Int32Holder valueHolder)
{
this.valueHolder = valueHolder;
}
}
Тогда:
Int32Holder holder = new Int32Holder();
Foo a = new Foo(holder);
Foo b = new Foo(holder);
a.Value = 10;
Console.WriteLine(b.Value); // Prints 10
Однако я бы не посоветовал это ... этоделает для довольно запутанного поведения.
Почти наверняка есть лучшие шаблоны проектирования для того, что вы пытаетесь достичь - но мы не сможем помочь вам с ними, если вы не сообщите нам более широкую картину.
Я бы рекомендовал против , используя статические переменные, показанные в других ответах, если только вы действительно не хотите, чтобы переменная ассоциировалась с типом, а не с каким-либо экземпляром типа.