C# Console Application’larında kullanıcının programı çalıştırırken sınırsız parametre yollayabileceği durumu inceleyeceğiz.
Öncelikle Visual Studio IDE’mizi açıyoruz. Ben Visual Studio 2013 kullanıyorum ama herhangi bir Visual Studio sürümünde de yazdığımız program çalışacaktır. Programımızı açtıktan sonra; File-> New -> Project -> Visual C# -> ConsoleApplication butonlarına sırayla tıklayıp projemizi oluşturuyoruz.
Resim-1 – Console Application Seçimi
Şu aşamada öğrenmemiz gereken 2 şey var. Birincisi fonksiyona sınırsız parametre nasıl çağırırız, ikincisi ise Console’dan girilen değerleri Main Fonksiyonunda nasıl kullanırız.
Sınırsız Parametre
C# da “Params” tipinde parametreler vardır. Kullanımı çok basittir. Fonksiyona girdiğiniz parametre sayısı kadar parametre alır ve verileri Array formatında girdiğimiz uzunluklarını yani kaç tane parametre girildiğini biliriz. İşlemlerimizi buna göre kolayca yaparız. Basit bir kullanım örneği göstereceğim.
public void ExampleFunction (params int [] arr)
{
for (int i = 0 ; i< arr.length ; i++)
{
// Burada arr arrayinde bulunan tüm parametreler ile işlemler // yapabilirsiniz. Detaylı kullanımını yazacağımız programda göstereceğim.
}
}
Programın implementasyonu ;
Console Application’umu oluşturduktan sonra kodumu yazıyorum. Kopyalayabilmeniz için Screenshot ile beraber kodu da paylaşacağım.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ParamsParameterOnConsoleApplication
{
class Program
{
static void Main(string[] args)
{
int[] arr = new int[args.Length];
for (int i = 0; i < arr.Length; i++)
{
arr[i] = Convert.ToInt32(args[i]);
Console.WriteLine(“The index number of Array = ” + i.ToString()
+ ” value = ” + arr[i].ToString() + “\n”);
}
}
}
}
Resim-2 – Program Kodları
Görüldüğü üzere Static Void Main fonksiyonu (string[] args ) parametresi içermektedir. Konsoldan gireceğimiz her bir değer bu String Array’in içinde Index’leri arttırılarak otomatik bir şekilde depolanır. Programın yaptığı iş ise çok basit. Alınan parametreleri yeni bir Array içerisinde depoluyor. Daha sonra Index’leri ile birlikte yazdırıyor.
Programın Çalıştırılması
Programımızı CTRL+SHIFT +B tuşlarına aynı anda basarak ya da yukarıda ki BUİLD seçmesinden Build Solution’u seçerek Build ediyoruz. Kodlama da hata yok ise Build tamamlanacaktır. Daha sonra ise CTRL+ F5 yaparak programımızı Debug ediyoruz. Böylece kullanacağımız .exe dosyamız oluşturuldu. Programımız Build olduktan sonra projenin olduğu klasöre gidiyoruz.
Adım 1 -> Benim adlandırmama göre projenin adı ” ParamsParameterOnConsoleApplication”.
Adım 2 -> Programımın olduğu klasöre girdikten sonra proje ile aynı isimde bir klasör ve aynı isimle bir .sln dosyası çıkaraktır. Klasöre giriyoruz.
Adım 3-> Buradan “Bin” klasörüne girdikten sonra “Debug” klasörüne giriyoruz.
Resim-3 – Proje içinde.exe dosyası adresi
Adım 4-> Projemiz ile aynı isimdeki.exe dosyasını kopyalıyoruz. Erişim kolaylığı olması açısından bu dosyayı C:\Users adresine kopyalıyoruz.
Resim-4 – .exe dosyasının kopyalanacağı yer
Yukarıda ki ScreenShot da görüldüğü üzere C Disk bölümüme ye giriş yaptıktan Users Klasörüne programımın exe dosyasını kopyaladım.
Şimdi ise başlat menüsüne “cmd” yazarak Command Promt’u açıyoruz.
Resim-5 – Command Prompt Araması
Command satırımız geldi. Şimdi Programımızı çalıştıracağız.
Adım 1 -> “cd ..” komutunu yazarak bir önceki index’e geçiyoruz.
Şuan ki indeximiz C:\Users\Gökberk
Resim-6 – İndex Değişimi
Görüldüğü üzere “cd ..” yazarak bir önceki index’e geçtik. Yeni index’imiz C:\Users
Adım 2-> Burada “dir” komutunu yazarak klasör içinde olan dosyaları görüntülüyoruz. Açacağım ParamsParameterOnConsoleApplication.exe dosyasını görmüş bulundum.
Resim-7 – Dir komutu kullanımı
Adım 3-> Programımın ismini yazıp yanına girmek istediğim integer değerleri giriyorum ve enter’a basıyorum.
Resim-8 – Programın Çalıştırılması
Adım 4-> Burada ise sonuçları görüntüleyeceğiz. Görüldüğü üzere konsoldan girdiğim sınırsız sayıda olabilecek parametreleri alıp program içinde işledim.
Resim-9 – Sonuçların Gözükmesi
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar