C# Main() Metodu ile ERRORLEVEL


Main metodunu C# ile yazdığımız tüm console, windows desktop ve windows servislerinde bulunması gerektiğiniz biliyoruz. Zaten bu programlardan herhangi birini yazmak için Visual Studio içinde yeni proje oluştruduğumuzda Visual Studio main metodu yazılmış şekilde projeyi oluşturmaktadır. Ve bu metod static bir metod olup void tipinde tanımlanmış olarak gelmektedir.

Fakat biz istersek bu metodun tipini değiştirebiliriz. Peki bu bizim ne işimize yarıyacak? Mesela bir örnek olarak ERRORLEVEL değişkenini batch dosyasıyla okuyarak programımızın döndürdüğü değeri izleyebiliriz. Windows üzerinde bir program çalıştırdığımızda Main() metodunun döndürdüğü değer ERRORLEVEL denilen çevresel değişken üzerinde tutulur. Genelde Main() metodunun döndürdüğü 0 programın sorunsuz çalıştığını –1 ise program çalışırken hata oluştuğunu göstermektedir. Yani kısacası Main() metodumuzun tipini void tipinden int tipine çevirerek programımızın doğru çalışıp çalışmadığını çevresel değişken olaran ERRORLEVEL’I kullanarak öğrenmek mümkün. Şimdi bu anlattıklarımızı bir program üzerinde inceleyelim.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MainReturnValTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("C# Main() Metodu ile ERRORLEVEL");
            Console.ReadLine();
        }
    }
}

Yukarıda yazdığımız program default olarak gelen static void tipli Main() metodumuz ile yazdığımız program bu programı Main() metodunu int tipine çevirip yazarsak :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MainReturnValTest
{
    class Program
    {
        static int Main()
        {
            Console.WriteLine("C# Main() Metodu ile ERRORLEVEL");
            Console.ReadLine();
            return 0;
        }
    }
}

Görüldüğü gibi artık Main metodu bir değer döndürüyor. Böylelikle artık çevresel değişken ERRORLEVEL’i kullanarak artık programımızın çalışmasını izleyebiliriz. Bunun için biz txt dosyası açarak aşagıdaki kodu içerisine kopyalayıp dosyayı test.bat şeklinde kaydedip projemizin olduğu klasöre kopyalamamız gerekli. Bundan sonra yapmamız gereken Visual Studio Commant prompt ile bat uzantılı dosyamızı bulup çalıştırmak.

rem test.bat
@echo off
MainReturnValTest
@if "%ERRORLEVEL%" == "0" goto good
:fail
echo Execution Failed
echo return value = %ERRORLEVEL%
goto end
:good
echo Execution succeeded
echo Return value = %ERRORLEVEL%
goto end
:end
echo All Done.


Çalışma sonucu :

image

0 yorum :

Yorum Gönder