@Roflmax

Как с помощью return вернуть две переменные?

Это часть учебного задания. Оно использует моё возвращённое значения для проверки длины от отрезка до точки в различных случаях. Я могу спокойно вернуть одну из них, но не знаю как это сделать вместе.
public static double GetDistanceToSegment(double ax, double ay, double bx, double by, double x, double y)
		{
			double result = 0;
			double sabx = (ax + bx) / 2;
			double saby = (ay + by) / 2;

			double tandotrez1x = x - ax;
			double tandotrez1y = y - ay;
			double tandotrez2x = x - bx;
			double tandotrez2y = y - by;
			double otrezx = bx - ax;
			double otrezy = by - ay;
			double primouotrezx = sabx - x;
			double primouotrezy = saby - y;

			
			if ((otrezx*primouotrezx+otrezy*primouotrezy)==0)
            {
				 result = Math.Pow(Math.Pow(primouotrezx, 2) + (Math.Pow(primouotrezy, 2)), 0.5);
            }
			return result;		
	
			double dlina1 = Math.Pow(Math.Pow(otrezx, 2) + Math.Pow(otrezy, 2), 0.5);
			double dlina2 = Math.Pow(Math.Pow(tandotrez1x, 2) + Math.Pow(tandotrez1y, 2), 0.5);
			double dlina3 = Math.Pow(Math.Pow(tandotrez2x, 2) + Math.Pow(tandotrez2y, 2), 0.5);
			double poluperimetr = (dlina1 + dlina2 + dlina3) / 2;
			double square = Math.Pow(poluperimetr*(poluperimetr-dlina1) * (poluperimetr - dlina2) * (poluperimetr - dlina3), 0.5); //S=1/2*h*a h=2S/a
			double h = 2 * square / dlina1;
			return h;
			


		}
  • Вопрос задан
  • 373 просмотра
Решения вопроса 1
hekkaaa
@hekkaaa
C#/.NET Developer
Есть очень нужно то то используй "кортеж".
Не лучшая практика как поговаривают, но если нужно именно так и не иначе, то почему и нет.

public (int, string) GetUser(){
int a = 14;
string b = "Roman";
return (a,b)
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@rPman
дополню отвечающих
можно добавить аргументов в функцию, определив как ссылочные (ключевое слово ref или out), соответственно одно или все возвращаемые значения можно разместить там
Ответ написан
Комментировать
vabka
@vabka Куратор тега C#
Токсичный шарпист
Есть несколько вариантов:
1. Возвращать массив
2. Объявить свою структуру или класс, в которой будет два нужных значения в виде полей или свойств
3. Возвращать кортеж
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
return возвращает что то, что то что содержит 2 значения это либо класс либо структура, либо извращенная строка с разделителями (не делайте так)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы