Merhabalar hayırlı sabahlar herkese bugün sizlerle birlikte argüman kullanımı göreceğiz. Argüman çoğumuzun da bildiği üzere herhangi bir yürütülebilir dosyayı belirli komutlarla bir vekil(komut istemi, powershell vb.) aracılığıyla kullanıcı tarafından istenen işlemi başlatarak çalıştırılmasına denir. Yani hedef program başlatılırken girilen ek değerler. Kısa bir örnek verecek olursak komut istemi üzerinde /c argümanı komut istemimizde komutu çalıştır & kapat anlamına gelir. Bizler ise C# üzerinde hem form hem de konsol uygulaması üzerinde bunları göreceğiz. İlk önce form uygulamamızdan başlayalım.
C# üzerinde form oluşturalım ardından Form Load olayına aşağıdaki kodları giriyoruz;
C#:
string[] args = Environment.GetCommandLineArgs();
for (int i = 1; i < args.Length; i++)
{
switch (args[i].Trim().ToLower())
{
case "/k":
MessageBox.Show($"Kapanıyor...",
"Sistem", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Close();
break;
case "/a":
MessageBox.Show("Oluşturan: Ben", "Hakkında",
MessageBoxButtons.OK, MessageBoxIcon.Information);
break;
case "/s":
Process.Start("notepad.exe");
break;
default:
MessageBox.Show($"Desteklenmeyen komut: {args[i]}",
"Hata", MessageBoxButtons.OK, MessageBoxIcon.Warning);
break;
}
[ SONUÇ GÖRSELİ ]
Şimdi gelelim konsol uygulamamıza burada index 0 olayı olmadığı için yani direkt kendi uzantısını görmediği için direkt olarak aşağıdaki kodları girebiliriz.
C#:
if (args.Length == 0)
{
Console.WriteLine("Kullanım: program.exe [/k] [/a] [/s] [/yardım]");
return;
}
foreach (string arg in args)
{
switch (arg.Trim().ToLower())
{
case "/k":
Console.WriteLine("Kapanıyor...");
Environment.Exit(0);
break;
case "/a":
Console.WriteLine(" Oluşturan: Ben");
break;
case "/s":
Console.Write("notepad.exe açılacak. Devam? (e/h): ");
string input = Console.ReadLine();
if (input.Trim().ToLower() == "e")
{
Process.Start("notepad.exe");
Console.WriteLine("notepad.exe başlatıldı.");
}
else
{
Console.WriteLine("İşlem iptal edildi.");
}
break;
case "/yardım":
Console.WriteLine("Desteklenen komutlar:");
Console.WriteLine(" /k - Arayüzü gizle");
Console.WriteLine(" /a - Hakkında bilgisi");
Console.WriteLine(" /s - notepad başlat");
Console.WriteLine(" /yardım - Bu yardım mesajı");
break;
default:
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine($"Desteklenmeyen komut: {arg}");
Console.ResetColor(); // Reset atmaz isek diğer girilen komutlarda sürekli kırmızı yazı yazar bunun olmasını istemiyoruz.
break;
}
-Unutulmamalıdır ki form uygulamalarında argümanlar genellikle arka planda iş mantığını kontrol etmek için kullanılırken, konsol uygulamalarında doğrudan kullanıcı ile etkileşim halindedir. Bu nedenle konsol uygulamalarında kullanıcıya geri bildirim vermek daha yaygındır.
[ SONUÇ GÖRSELİ ]
Genel olarak baktığımızda argüman kullanımı hem esneklik hem de otomasyon açısından yazılım geliştirme süreçlerinde kullanıcılara büyük kolaylık sağlar. Kullanıcı bu sistemi doğru şekilde kullanırsa uygulamanın davranışını herhangi bir müdahaleye gerek kalmadan değiştirmek mümkündür. Örneğin bir sistem yöneticisi, aynı uygulamayı farklı parametrelerle çalıştırarak farklı görevleri yerine getirebilir. Bu da hem zaman kazandırır hem de otomasyon süreçlerini kolaylaştırır. Siz yukarıda yer alan örnek senaryolara hata yönetimi, loglama(kodumuz üzerinde uygulamamızı belirli parametrelerle sınırlı tutarak güvenlik sürecini gördük) gibi süreçler de ekleyebilirsiniz ki kodlarınız çok daha iyi hale gelir. Şahsen konuyu daha fazla uzatmamak adına ve olayların ana mantığını göstermek için bu tarz örneklere yer vermek istedim. Okuduğunuz için teşekkür ederim önerileriniz olursa veya eksik kaldığım bir yer varsa konu altında belirtebilirsiniz. Şimdiden teşekkür ederim.
Kaynaklar ;
www.youtube.com/watch?v=f0KRoZZbW3U
Son düzenleme:





