C# konsol uygulaması şablonu üst düzey deyimler oluşturur

.NET 6'dan başlayarak, yeni C# konsol uygulamaları için proje şablonu Program.cs dosyasında aşağıdaki kodu oluşturur:

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

Yeni çıkış, bir program için yazmanız gereken kodu basitleştiren son C# özelliklerini kullanır. .NET 5 ve önceki sürümler için konsol uygulaması şablonu aşağıdaki kodu oluşturur:

using System;

namespace MyApp // Note: actual namespace depends on the project name.
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

Bu iki form aynı programı temsil edilir. Her ikisi de C# 10.0 ile geçerlidir. Daha yeni sürümü kullandığınızda, yalnızca yönteminin gövdesini Main yazmanız gerekir. Derleyici, giriş noktası yöntemiyle bir Program sınıf oluşturur ve tüm üst düzey deyimlerinizi bu yönteme yerleştirir. Oluşturulan yöntemin adı değildir Main, kodunuzun doğrudan başvuramazsınız bir uygulama ayrıntısı. Diğer program öğelerini eklemeniz gerekmez, derleyici bunları sizin için oluşturur. C# Kılavuzu'nun temel bilgileri bölümündeki üst düzey deyimler makalesinde en üst düzey deyimleri kullandığınızda derleyicinin oluşturduğu kod hakkında daha fazla bilgi edinebilirsiniz.

.NET 6+ şablonlarını kullanacak şekilde güncelleştirilmemiş öğreticilerle çalışmak için iki seçeneğiniz vardır:

  • Özellik eklerken yeni üst düzey deyimler ekleyerek yeni program stilini kullanın.
  • Yeni program stilini bir Program sınıf ve bir yöntemle eski stile Main dönüştürün.

Eski şablonları kullanmak istiyorsanız, bu makalenin devamında Eski program stilini kullanma bölümüne bakın.

Yeni program stilini kullanma

Yeni programı daha basit hale getiren özellikler üst düzey deyimler, genel using yönergeler ve örtük using yönergelerdir.

Üst düzey deyimler terimi, derleyicinin ana programınız için sınıf ve yöntem öğelerini oluşturduğu anlamına gelir. Derleyici tarafından oluşturulan sınıf ve giriş noktası yöntemi genel ad alanında bildirilir. Yeni uygulamanın koduna bakabilir ve önceki şablonlar tarafından oluşturulan yöntemin Main içinde, ancak genel ad alanında deyimleri içerdiğini düşünebilirsiniz.

Geleneksel stilde yönteminize Main daha fazla deyim eklemek gibi, programa daha fazla deyim ekleyebilirsiniz. Öğesine erişebilir args (komut satırı bağımsız değişkenleri), kullanabilirawait ve çıkış kodunu ayarlayabilirsiniz. İşlevler bile ekleyebilirsiniz. Oluşturulan giriş noktası yönteminin içinde iç içe yerleştirilmiş yerel işlevler olarak oluşturulurlar. Yerel işlevler herhangi bir erişim değiştiricisi (örneğin, public veya protected) içeremez.

Hem üst düzey deyimler hem de örtük using yönergeler uygulamanızı oluşturan kodu basitleştirir. Var olan bir öğreticiyi izlemek için, şablon tarafından oluşturulan Program.cs dosyasına tüm yeni deyimleri ekleyin. Yazdığınız deyimlerin, öğreticinin yönergelerinde yöntemindeki Main açık ve kapanış küme ayraçları arasında olduğunu düşünebilirsiniz.

Eski biçimi kullanmayı tercih ederseniz, bu makaledeki ikinci örnekte yer alan kodu kopyalayabilir ve öğreticiye daha önce olduğu gibi devam edebilirsiniz.

Üst düzey deyimler hakkında daha fazla bilgi edinmek için öğreticide üst düzey deyimler hakkında daha fazla bilgi edinebilirsiniz.

Örtük using yönergeler

Örtük yönergeler terimi, derleyicinin proje türüne göre otomatik olarak bir yönerge kümesi using eklediği anlamına gelir.using Konsol uygulamaları için aşağıdaki yönergeler uygulamaya örtük olarak eklenir:

  • using System;
  • using System.IO;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Net.Http;
  • using System.Threading;
  • using System.Threading.Tasks;

Diğer uygulama türleri, bu uygulama türleri için ortak olan daha fazla ad alanı içerir.

Örtük olarak dahil olmayan yönergelere ihtiyacınız using varsa, bunları üst düzey deyimleri içeren .cs dosyasına veya diğer .cs dosyalarına ekleyebilirsiniz. Bir using uygulamadaki tüm .cs dosyalarında ihtiyacınız olan yönergeler için genel using yönergeleri kullanın.

Örtük using yönergeleri devre dışı bırakma

Bu davranışı kaldırmak ve projenizdeki tüm ad alanlarını el ile denetlemek istiyorsanız, aşağıdaki örnekte gösterildiği gibi öğesindeki <PropertyGroup> proje dosyanıza ekleyin<ImplicitUsings>disable</ImplicitUsings>:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    ...
    <ImplicitUsings>disable</ImplicitUsings>
  </PropertyGroup>

</Project>

Genel using yönergeler

Genel using yönerge, tek bir dosya yerine uygulamanızın tamamı için bir ad alanını içeri aktarır. Bu genel yönergeler, proje dosyasına bir <Using> öğe eklenerek veya yönergesi global using bir kod dosyasına eklenerek eklenebilir.

Belirli bir <Using>Remove örtük using yönergeyi kaldırmak için proje dosyanıza özniteliği olan bir öğe de ekleyebilirsiniz. Örneğin, örtük using yönergeler özelliği ile <ImplicitUsings>enable</ImplicitUsings>açıksa, aşağıdaki <Using> öğenin eklenmesi ad alanını örtük olarak içeri aktarılanlardan kaldırır System.Net.Http :

<ItemGroup>
  <Using Remove="System.Net.Http" />
</ItemGroup>

Eski program stilini kullanma

.NET SDK 6.0.300'den başlayarak şablonun console bir --use-program-main seçeneği vardır. Üst düzey deyimleri kullanmayan ve bir yöntemi olan bir Main konsol projesi oluşturmak için bunu kullanın.

dotnet new console --use-program-main

Oluşturulan Program.cs aşağıdaki gibidir:

namespace MyProject;
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello, World!");
    }
}

Visual Studio'da eski program stilini kullanma

  1. Yeni bir proje oluşturduğunuzda, kurulum adımları Ek bilgi kurulum sayfasına gider. Bu sayfada Üst düzey deyimleri kullanma onay kutusunu seçin.

    Visual Studio do not use top-level statements check box

  2. Projeniz oluşturulduktan Program.cs sonra içerik aşağıdaki gibidir:

    namespace MyProject;
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
    

Dekont

Visual Studio, projeyi aynı şablona göre bir sonraki oluşturduğunuzda seçeneklerin değerini korur, bu nedenle varsayılan olarak bir sonraki "En üst düzey deyimleri kullanma" onay kutusu işaretlenir. Dosyanın içeriği Program.cs , genel Visual Studio metin düzenleyicisi ayarlarında veya dosyada tanımlanan kod stiliyle EditorConfig eşleşecek şekilde farklı olabilir.

Daha fazla bilgi için bkz . EditorConfig ve Seçenekler, Metin Düzenleyicisi, C#, Gelişmiş ile taşınabilir, özel düzenleyici ayarları oluşturma.