Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İpucu
Yazılım geliştirme konusunda yeni misiniz? İlk olarak Başlangıç öğreticileri ile başlayın. Bu öğreticilerde yeni uygulamalar için daha basit olan üst düzey deyimler kullanılır.
Mevcut bir kod tabanıyla mı çalışıyorsunuz? Mevcut uygulamaların çoğu açık Main bir yöntem kullanır. Bu makalede nasıl çalıştığı ve etkili bir şekilde nasıl kullanılacağı açıklanmaktadır.
C# uygulamasını başlattığınızda runtime Main yöntemini çağırır.
Main yöntemi, bir C# uygulamasının giriş noktasıdır.
C# programının yalnızca bir giriş noktası olabilir. Bir Main yöntemi olan birden fazla sınıfınız varsa, giriş noktası olarak hangi yöntemin hizmetleneceğini belirtmek için programınızı derlerken Main derleyici seçeneğini kullanmanız gerekir. Daha fazla bilgi için bkz . StartupObject (C# Derleyici Seçenekleri). Aşağıdaki örnek, ilk eylemi olarak komut satırı bağımsız değişkenlerinin sayısını görüntüler:
class TestClass
{
static void Main(string[] args)
{
Console.WriteLine(args.Length);
}
}
Genel bakış
Main yöntemi yürütülebilir bir programın giriş noktasıdır. Programınız başlatıldığında, başka bir kod çalıştırılmadan önce çalışma zamanı Main çağırılır. Geri döndüğünde Main program sona erer. Bu kuralları izleyerek Main bildirirsiniz.
- Bir sınıf veya yapı içinde bildirmeniz
Maingerekir. Kapsayanclassolabilirstatic. -
Mainolmalıdırstatic. -
Mainherhangi bir erişim değiştiriciye sahip olabilir. -
Main,void,int,TaskveyaTask<int>döndürebilir. - Eğer ve yalnızca
Main, birTaskveyaTask<int>döndürürse,Mainbildirimiasyncdeğiştiricisini içerebilir. Bu kural özellikle birasync void Mainyöntemi dışlar. -
Mainyöntemini, komut satırı argümanlarını içeren birstring[]parametre ile veya parametresiz olarak bildirebilirsiniz. Windows uygulamaları oluşturmak için Visual Studio'yu kullandığınızda, parametreyi elle ekleyebilir veya komut satırı argümanlarını elde etmek için {method_name} yöntemini kullanabilirsiniz. Parametreler sıfır dizinli komut satırı bağımsız değişkenleridir. C ve C++'ın aksine, programın adı dizidekiargsilk komut satırı bağımsız değişkeni olarak değerlendirilmez, ancak yöntemin GetCommandLineArgs() ilk öğesidir.
Aşağıdaki listede bildirimlerin Main permütasyonları gösterilmektedir:
static void Main() { }
static int Main() { }
static void Main(string[] args) { }
static int Main(string[] args) { }
static async Task Main() { }
static async Task<int> Main() { }
static async Task Main(string[] args) { }
static async Task<int> Main(string[] args) { }
Yukarıdaki örnekler bir erişim değiştirici belirtmediğinden varsayılan olarak örtük olarak private gösterilir. Herhangi bir açık erişim değiştirici belirtebilirsiniz.
Aşağıdaki tabloda tüm geçerli Main imzalar ve bunların ne zaman kullanılacağı özetlemektedir:
Main bildirim |
Kullanır args |
İçerir await |
Çıkış kodunu döndürür |
|---|---|---|---|
static void Main() |
Hayır | Hayır | Hayır |
static int Main() |
Hayır | Hayır | Evet |
static void Main(string[] args) |
Evet | Hayır | Hayır |
static int Main(string[] args) |
Evet | Hayır | Evet |
static async Task Main() |
Hayır | Evet | Hayır |
static async Task<int> Main() |
Hayır | Evet | Evet |
static async Task Main(string[] args) |
Evet | Evet | Hayır |
static async Task<int> Main(string[] args) |
Evet | Evet | Evet |
Gereksinimlerinize en uygun basit imzayı seçin. İhtiyacınız yoksa komut satırı bağımsız değişkenlerine, string[] args parametresini atlayın. Çıkış kodu döndürmeniz gerekmiyorsa void veya Task kullanın. Zaman uyumsuz yöntemleri çağırmanız gerekiyorsa, Task veya Task<int> dönüş türüyle async kullanın.
Main() dönüş değerleri
int veya Task<int> döndürüldüğünde, programınız diğer programlara veya betiklere durum bilgisi gönderebilir. değerinin 0 dönüş değeri genellikle başarı, sıfır olmayan bir değer ise hata olduğu anlamına gelir.
Aşağıdaki örnek bir çıkış kodu döndürür:
class MainReturnValTest
{
static int Main()
{
//...
return 0;
}
}
Programı çalıştırdıktan sonra çıkış kodunu de kontrol edebilirsiniz. PowerShell'de kullanın $LastExitCode. Toplu dosyada veya kabuk betiğinde %ERRORLEVEL% kullanın.
Eğer Main yöntemi await kullanıyorsa, Task veya Task<int> dönüş türüyle async olarak bildirin. Çalışma zamanı Main çağrısını yapar ve işlem sona ermeden önce döndürülen Task tamamlanmasını bekler. Dönüş türü void veya int olamaz çünkü async değiştirici, çalışma zamanının bekleyebileceği bir dönüş türü gerektirir. void ve int, devam eden çalışmayı temsil etmez; bu nedenle zaman uyumsuz işlemler tamamlanmadan önce işlem sona erebilir. Exit koduna ihtiyacınız yoksa Task kullanın, ihtiyacınız varsa Task<int> kullanın.
class Program
{
static async Task<int> Main(string[] args)
{
return await AsyncConsoleWork();
}
private static async Task<int> AsyncConsoleWork()
{
return 0;
}
}
Komut satırı argümanları
Komut satırı bağımsız değişkenlerini kabul etmek için Main bildiriminize bir string[] args parametre ekleyin. Bunlara ihtiyacınız yoksa parametresini atlarsınız.
args parametresi, hiçbir zaman null olmayan bir String dizisidir; bağımsız değişken sağlanmazsa, boyutu Length sıfırdır.
Parse veya Convert kullanarak dize bağımsız değişkenlerini diğer türlere dönüştürebilirsiniz.
long num = long.Parse(args[0]);
İpucu
Komut satırı bağımsız değişkenlerini ayrıştırma karmaşık olabilir. İşlemi basitleştirmek için System.CommandLine kitaplığını kullanmayı göz önünde bulundurun.
Bir çalışma örneği için bkz. Komut satırı bağımsız değişkenlerinin nasıl görüntüleneceği.
C# dili belirtimi
Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.