Większość programów pozwala na uruchomienie programu w różnych trybach: normalnym, debugowania, awaryjnymi wielu innych. Wymuszenie odpowiedniego trybu pracy programu jest możliwe dzięki przekazywaniu argumentów w linii poleceń.
Każdy program w systemie można wywołać z pewnymi argumentami. Do programu są one przesyłane jako tablica łańcuchów znaków. Program może je zinterpretować, aby dostosować swoje działanie odpowiednio do żądania. W języku C# argumenty wywołania są przesyłane do funkcji Main() do zmiennej domyślnie nazwanej args.
W przypadku prostych projektów rzadko są używane, ale mogą się one okazać bardzo przydatne podczas tworzenia bardziej zaawansowanych produktów. Dzięki temu jest przykładowo możliwe utworzenie trybu awaryjnego aplikacji, albo trybu w którym zostaną przeskanowane pliki w celu naprawy uszkodzonych fragmentów.
W celu przesłania argumentów do programu można posłużyć się konsolą systemową. W tym celu należy przejść do folderu gdzie znajduje się plik wykonywalny, a po nim podać argumenty jakie mają zostać przesłane do aplikacji. Rzecz jasna program musi mieć wbudowany fragment kodu, który przekazane argumenty zinterperetuje.
Oto przykładowe wywołanie programu i przekazaniem do niego danych:
W przypadku posługiwania się środkowiskiem programistycznym takim jak Visual Studio możliwe jest uruchomienie programu z góry określonymi argumentami. W tym celu należy otworzyć Właściwości (Properties) projektu i kliknąć zakładkę Debug. Tam znajduje się w sekcji Uruchamianie (Start Options) pole opisane Argumenty Linii Poleceń (Command Line arguments). Pole to można uzupełnić danymi, które powinny zostać przekazane do uruchamianego programu.
Tu należy pamiętać, że w to pole wpisuje się tylko i wyłącznie argumenty. Ścieżkę dostępu oraz nazwę pliku wykonywalnego Visual Studio dołączy automatycznie.
Przypuśćmy, że chcemy dopuścić działanie programu w różnych trybach pracy. Jeśli nie zostanie ustawiony parametr -mode to program działa w trybie normalnym. Kiedy działa w trybie DEBUG to wszystkie zdarzenia są rejestrowane i zapisywane do pliku. Jest to uzasadnione w przypadku, gdy tworzenie dziennika w trybie normalnym miałoby spowodować spowolnienie działania aplikacji. Zwykle spotyka się jeszcze tryb awaryjny. Będzie go można włączyć przy pomocy wartości SAFE i pozwoli na odzyskanie danych użytkownika kiedy tryb normalny przestanie działać.
Konkretna implementacja jak miałby działać każdy z trybów jest zależna od tworzonego oprogramowania. Jednak sprawdzenie w jakim trybie ma zostać uruchomiony program mogłoby wyglądać tak:
Z kolei jego interpretacja polegałałby na określeniu trybu, a następnie wypisaniu odpowiedniego komunikatu.
Oto przykładowe uruchomienie programu w celu zweryfikowania jego działania:
Zwykle przesyłanymi danymi do programu jest np. ścieżka dostępu do pliku oraz argumenty, które określają jak ma zostać skonwertowany. Jednak jest możliwe przesyłanie określonych wartościw celu np. wykonania szybkiego testu (choć zwykle używa się do tego standardowego strumienia). W poniższym przykładzie zakłada się, że pierwszy argument określa tekst w którym jest wyszukiwany znak, który jest przekazywany jako drugi argument.
Uzyskany wynik można wypisać na konsolę, albo zapisać do pliku. Oto przykładowe wywołanie:
Korzystanie z argumentów może prowadzić do zgłoszenia wyjątków w programie, ponieważ użytkownik nie podał wartości dla danego parametru, albo popełnił literówkę. Z tego powodu bardzo ważne jest, aby program takie przypadki umiał ignorować.
Napisz kalkulator, który będzie odczytywał dane z przekazanych argumentów. Przyjmuje się, że poprawny test to taki, gdy przekazane zostaną trzy wartości z czego pierwsza to będzie znak operacji, a drugi i trzeci to pewne liczby całkowite. Wynik powinien zostać wypisany na konsolę. Rozpoznowane powinny być operatory: dodawania (+), odejmowanie (-), mnożenia (*) oraz dzielenie (: lub /).
Poniżej zostało zaprezentowane wywołanie programu dla różnych argumentów: