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 stileMain
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
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.
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.