1
resposta

Como criar funções com o conteúdo parecido?

Tenho uma função em que em um momento será usado os parâmetros X e em outro os em Y, mas eu não queria ter que repetir essa função 2 vezes só mudando o lugar que a variável vai e etc, tem como ser feito?

Esse é o código atual:

if (Math.Abs(distance2hor) < 0.0001) // Horizontal
                            {
                                if (g.Curve.GetEndPoint(0).X > horizontal_endpoint0) // Primeiro Ponto da curva
                                {
                                    horizontal_endpoint0 = g.Curve.GetEndPoint(0).X;
                                    int i;

                                    // Verifica se é um numero ou string
                                    if (int.TryParse(g.get_Parameter(BuiltInParameter.DATUM_TEXT).AsString(), out i))
                                    {
                                        horizontal_inicial = i;
                                    }
                                    else
                                    {
                                        horizontal_inicial_st = g.get_Parameter(BuiltInParameter.DATUM_TEXT).AsString();
                                    }
                                }

                                if (g.Curve.GetEndPoint(1).X < horizontal_endpoint1) // Segundo Ponto da Curva
                                    horizontal_endpoint1 = g.Curve.GetEndPoint(1).X;

                                horizontais.Add(g);
                            }
                            else if (Math.Abs(distance2vert) < 0.0001)
                            {
                                if (g.Curve.GetEndPoint(0).Y < vertical_endpoint0) // Primeiro ponto da Curva
                                {
                                    vertical_endpoint0 = g.Curve.GetEndPoint(0).Y;


                                }

                                if (g.Curve.GetEndPoint(1).Y > vertical_endpoint1)
                                    vertical_endpoint1 = g.Curve.GetEndPoint(1).Y;

                                verticais.Add(g);
                            }
1 resposta

Uma das maneiras de contornar esse problema seria tornando o X ou Y um dos parâmetros da função, assim como o horizontal/vertical endpoint. Dessa forma, o código da função em si será menor, embora ela tenha mais parâmetros.