none
como pasar todas las variables de un metodo a otro RRS feed

  • Pergunta

  • tengo una función llamada Layout, con una cantidad exagerada de variables de diferentes tipos de datos y así como también varios arreglos de diferentes tipos de datos también y quiero pasar todas (o casi todas) las variables de este método a otro llamado Print de la forma mas simple posible.

    el problema es que pasárselo como parámetro seria una verdadera tortura debido a que son muchísimas, ademas de ser muy tedioso y complicado. no puedo, ni quiero crear un arreglo de cada tipo de datos, debido a que no trabajo solo en este proyecto y se volvería muy confuso.

    he intentado crear el método dentro del mismo método que quiero pasar sus variables, de esta manera.

    public static void Layout(string  GranCantidadDeVariablesyArreglos)
    {
     string ejemplo = "esto es un ejemplo";
     
     Print();
    
       void Print()
       {
          Console.WriteLine(ejemplo);
       }
    }

    yo creía que esto era posible hacerlo pero visual estudio no me lo permite, se confunde y me pide que cierre Layout antes de abrir Print lo cual hace imposible que Print cumpla su función.

    gracias por leer mi pregunta espero que me puedan ayudar.

     

    • Editado Duckki sábado, 8 de agosto de 2020 17:44
    sábado, 8 de agosto de 2020 17:40

Todas as Respostas

  • Para poder anidar un método dentro de otro necesitas usar C# 7.0. En versiones anteriores no se soportaba.

    Si tienes una versión más antigua y no puedes actualizarte, hay un par de opciones:

    La primera es declarar los dos métodos (el llamante y el llamado) dentro de una clase, y declarar las variables a nivel de clase. Las clases sí que se pueden anidar unas dentro de otras, y podrías declarar una clase solo para esto si fuera necesario y no te viene bien la clase ya existente en la que se encuentra el método.

    La segunda es declarar una nueva clase que sirva para contener todas las variables que pasas de un método al otro. Entonces metes todos tus valores dentro de una instancia de esa clase, y pasas ese único parámetro (la instancia de la clase) de un método al otro.

    sábado, 8 de agosto de 2020 20:48
    Moderador
  • Hola

    ¿Te han funcionado las respuestas? Si nos puedes actualizar tu estado, sería genial!

    Saludos

    segunda-feira, 10 de agosto de 2020 17:54
    Moderador