jak przekazywać parametry do metody main?

0

Hej

Jestem młodym adeptem kultury programistycznej i w czasie zgłębiania tajników c# napotkałem się z problemem, który na dzień dzisiejszy mnie pokonał :/

Mianowicie: mam zadanie od swojego Mentora w którym muszę przekazać do metody main jakiś argument. (cokolwiek to znaczy).
tak by aplikacja którą stworzyłem próbowała domyślnie z czytać dane z pliku.txt a jeżeli się nie uda ma działać tak jak wcześniej (czyli porosić użytkownika o podanie danych)
do tej pory potrafiłem obejść to na swój własny sposób. tzn program pytał użytkownika czy chce podać dane sam. czy dane mają zostać wczytane z pliku, albo mogłem to zrobić IFem, że jeżeli plik istnieje to sczytaj dane, else poproś użytkownika o dane.

jednak to nie jest sposób wykonania jaki jest ode mnie oczekiwany :/

czy ma ktoś pomysł jak to mogę zrobić? gdzie szukać pomocy? do tej pory przeczytałem "wstęp do programowania w c#" oraz zrobiłem kilka tutoriali na youtubie jednak nigdzie nie było o przekazywaniu parametrów do metody main.

podobno powinienem szukać w "lini poleceń", ale też niewiele mi to pomogło

z góry dziękuję za wszelką pomoc

1

Jeśli to aplikacja w konsoli to masz tablicę stringów args:

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(args[0]);
        }
    }

W programie wystarczy użyć parametru z linii poleceń (jeśli program nazywa się konsola1 i wywołuję go z parametrem dupa):
konsola1 dupa
to wyświetli mi w wyniku:
dupa.

O to chodzi?

0

w sumie chyba tak. tyle, że jako parametr muszę ustawić ścieżkę do pliku tekstowego.

pytanie:
1.
mogę uruchomić program z parametrem z poziomu visual studio 2017 czy muszę to robić z poziomu wiersza poleceń?

czy jest jakaś komenda która sprawi, że jak użytkownik poda jakiś parametr podczas uruchomienia to zostanie wywołana jakaś metoda, a jak nie to jakaś inna?

1

Ad 2 Może być coś w ten deseń:

    class Program
    {
        static void Main(string[] args)
        {
            if (args.Count() > 0)
            {
                switch (args[0])
                {
                    case "-m1":
                        Console.WriteLine("Uruchomiona metoda 1");
                        break;
                    case "-m2":
                        Console.WriteLine("Uruchomiona metoda 2");
                        break;
                    case "-m3":
                        Console.WriteLine("Uruchomiona metoda 1");
                        break;
                    default:
                        Console.WriteLine("Dupa, coś źle wybrałeś!");
                        break;
                }
            }
        }
    }
0

wygląda na to, że nie potrafię uruchomić programu z parametrem :/

w wierszu poleceń wpisuje
C:\Users\ASUS\source\repos\Kalkulator500>kalkulator500.sln DatyDzieci.txt
(plik DatyDzieci.txt mam w folderze C:\Users\ASUS\source\repos\Kalkulator500\ConsoleApp4\bin\Debug)
jak w ten sposób robię, to uruchamia mi się visual studio i nic się nie dzieje.

jeżeli uruchamiam go w visual studio bez parametru to twój sposób się sprawdza :)

edit:
ok już sam do tego doszedłem.
Dziękuję ci bardzo za pomoc

1

mogę uruchomić program z parametrem z poziomu visual studio 2017 czy muszę to robić z poziomu wiersza poleceń?

We właściwościach projektu w zakładce "Debug" masz opcję "Command line arguments" i możesz testować argumenty wywołania od razu ze wnętrza VS.

0

Ogolnie to lepiej poszukaj jakiejs biblioteki do czytania przekazywanych w main argumentow - po co to samemu czytac jak mozna skorzystac z gotowego rozwiazania - np http://fclp.github.io/fluent-command-line-parser/

1 użytkowników online, w tym zalogowanych: 0, gości: 1