Сообщение Передать this в виде object от 14.03.2024 9:27
Изменено 14.03.2024 9:28 drVanо
Передать this в виде object
Нужно передать ссылку на ValueType в виде object, чтобы через object можно было менять содержимое структуры:
struct Point
{
public int x;
public int y;
public Point(int a, int b)
{
x = a;
y = b;
}
public void Move(int a, int b)
{
MoveObject(this, a, b);
Console.WriteLine("point from this: {0}.{1}", x, y);
}
static void MoveObject(object obj, int a, int b)
{
var p = (Point)obj;
p.x += a;
p.y += b;
Console.WriteLine("point from object: {0}.{1}", p.x, p.y);
}
}
...
public static void Main()
{
var p = new Point(1, 2);
p.Move(9, 8);
}
Передать this в виде object
Нужно передать ссылку на ValueType в виде object, чтобы через object можно было менять содержимое структуры:
Сейчас в MoveObject получаем копию Point, а не ссылку на начальную структуру.
struct Point
{
public int x;
public int y;
public Point(int a, int b)
{
x = a;
y = b;
}
public void Move(int a, int b)
{
MoveObject(this, a, b);
Console.WriteLine("point from this: {0}.{1}", x, y);
}
static void MoveObject(object obj, int a, int b)
{
var p = (Point)obj;
p.x += a;
p.y += b;
Console.WriteLine("point from object: {0}.{1}", p.x, p.y);
}
}
...
public static void Main()
{
var p = new Point(1, 2);
p.Move(9, 8);
}
Сейчас в MoveObject получаем копию Point, а не ссылку на начальную структуру.