Aracılığıyla paylaş


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
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

Önceki kodda gerçek ad alanı proje adına bağlıdır.

Bu iki form aynı programı temsil edilir. Her ikisi de C# dilinde geçerlidir. Daha yeni sürümü kullandığınızda, yalnızca Main yönteminin gövdesini 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 metodun adı Maindeğildir, kodunuzun doğrudan başvuramayacağı bir uygulama ayrıntısıdır. Diğer program öğelerini eklemeniz gerekmez, derleyici bunları sizin için oluşturur. C# Kılavuzu'nun temel bilgileri bölümünde üst düzey deyimleri hakkındaki makalede 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ştirilmeyen öğreticilerle çalışmak için iki seçeneğiniz vardır:

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

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

Yeni program stilini kullanma

Yeni programı daha basit hale getiren özellikler,, genel yönergeleri veörtük yönergeleri üst düzey deyimlerdir.

üst düzey deyimleri 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 fakat genel ad alanında olan Main yönteminin içindeki ifadeleri içerdiğini düşünebilirsiniz.

Geleneksel stilde Main yönteminize daha fazla deyim eklemek gibi, programa daha fazla deyim ekleyebilirsiniz. (komut satırı bağımsız değişkenleri) erişebilir kullanabilir ve çıkış kodunuayarlayabilirsiniz. İş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 erişim değiştiricileri (örneğin, public veya protected) içeremez.

Uygulamanızı oluşturan kodu basitleştirmek hem üst düzey deyimler hem de örtük yönergeleri . Var olan bir öğreticiyi izlemek için, şablon tarafından oluşturulan Program.cs dosyasına yeni ifadeler ekleyin. Yazdığınız deyimlerin, öğreticideki yönergelerdeki Main yönteminin açılış ve kapanış parantezleri arasında olduğunu hayal edebilirsiniz.

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

Öğretici araştırmasında üst düzey deyimlerhakkında daha fazla bilgi edinebilirsiniz.

Örtük using yönergeleri

Örtük yönergeleri terimi, derleyicinin proje türüne göre otomatik olarak bir yönergeleri kümesi eklediği anlamına gelir. 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 using yönergelerine ihtiyacınız varsa, bunları üst düzey deyimleri içeren .cs dosyasına veya diğer .cs dosyalarına ekleyebilirsiniz. Bir uygulamadaki tüm .cs dosyalarında ihtiyacınız olan yönergeleri içingenel yönergelerini kullanın.

Örtük using yönergelerini 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 <PropertyGroup> öğesindeki proje dosyanıza <ImplicitUsings>disable</ImplicitUsings> ekleyin:

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

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

</Project>

Genel using yönergeleri

genel yönergesi, 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> öğesi eklenerek veya bir kod dosyasına global using yönergesi eklenerek eklenebilir.

Ayrıca proje dosyanıza özniteliğine sahip bir öğesi ekleyerekbelirli bir örtük yönergesini kaldırabilirsiniz. Örneğin, örtük using yönergeleri özelliği <ImplicitUsings>enable</ImplicitUsings>ile açıksa, aşağıdaki <Using> öğesinin eklenmesi, örtük olarak içeri aktarılanlardan System.Net.Http ad alanını kaldırır:

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

Eski program stilini kullanma

.NET SDK 6.0.300'den başlayarak, console şablonunun --use-program-main seçeneği vardır. Üst düzey deyimleri kullanmayan ve Main yöntemi olan bir 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 bilgiler kurulum sayfasına gider. Bu sayfada Üst düzey deyimleri kullanma onay kutusunu seçin.

    Visual Studio üst düzey deyimlerin kullanılmamasını belirten onay kutusu

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

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

Not

Visual Studio, projeyi aynı şablona dayalı olarak bir sonraki oluşturduğunuzda seçeneklerin değerini korur, bu nedenle varsayılan olarak bir sonraki Konsol Uygulaması projesi oluşturduğunuzda "Üst düzey deyimleri kullanma" onay kutusu işaretli olacaktır. Program.cs dosyasının içeriği, genel Visual Studio metin düzenleyicisi ayarlarında veya EditorConfig dosyasında tanımlanan kod stiliyle eşleşecek şekilde farklı olabilir.

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