Зависит от того, что вы делаете и почему вы это делаете.
Структуры в C # не похожи на классы в Java вообще . Они как примитивные типы с точки зрения скорости и семантики. (На самом деле, примитивные типы в некотором смысле являются структурами). Их передача на самом деле бесплатна, поэтому, если это оптимизирует что-то, что не является проблемой, я предлагаю вам просто вернуть метод Point
.
Однако, возможно , что передача копии структуры будет в некоторых случаях медленнее, если struct
большой или , если этот метод является узким местом , возможно потому что вы называете это много раз в секунду (что, я сомневаюсь, имеет место здесь); в этих случаях имеет смысл передавать их по ссылке, но сначала вам необходимо выяснить, является ли это вообще узким местом.
Обратите внимание, например, что в библиотеке Microsoft XNA структура Matrix
имеет две версии одного и того же метода:
static void CreateLookAt(
ref Vector3 cameraPosition, ref Vector3 cameraTarget, ref Vector3 cameraUpVector,
out Matrix result)
static Matrix CreateLookAt(
Vector3 cameraPosition, Vector3 cameraTarget, Vector3 cameraUpVector)
Это чисто из соображений производительности, но только потому, что этот метод вызывается много раз в секунду, а Vector3
немного больше , чем обычный struct
.
Так почему именно ты это делал? Ответ зависит от причины, по которой вы сначала написали это так, но для типичного кода это не должно иметь значения.