Свойство x в классе First также может быть записано как
private int _x;
public int x
{
get { return _x; }
set { _x = value; }
}
Внесены незначительные изменения в предоставленный вами код, надеюсь, это поможет
public class First
{
public int x { get; set; }
public Second second;
public First()
{
x = 0;
second = new Second(this);
}
public void run()
{
second.change();
}
}
public class Second
{
private First _first;
public Second(First first)
{
_first = first;
}
public void change()
{
_first.x = 2;
}
}
Если у Вас был экземпляр Сокета, и Вы хотели перенести его в высокоуровневый класс TcpClient, который возможен и как Вы сделали бы это?
Socket socket = ...;
TcpClient client = new TcpClient();
client.Client = socket;
С другой стороны, если у Вас есть экземпляр TcpClient, действительно ли возможно получить базовый Сокет?
Получите базовое использование Сокета TcpClient. Свойство Client.
От TcpClient для Снабжения сокетом очень легко. tcpClientInstance.Client
базовый экземпляр Сокета.