Templat aplikasi konsol C# menghasilkan pernyataan tingkat atas
Dimulai dengan .NET 6, templat proyek untuk aplikasi konsol C# baru menghasilkan kode berikut dalam file Program.cs:
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
Output baru menggunakan fitur C# terbaru yang menyederhanakan kode yang perlu Anda tulis untuk program. Untuk .NET 5 dan versi yang lebih lama, templat aplikasi konsol menghasilkan kode berikut:
using System;
namespace MyApp
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Dalam kode sebelumnya, namespace yang sesungguhnya bergantung pada nama proyek.
Kedua bentuk ini mewakili program yang sama. Keduanya valid di C#. Ketika Anda menggunakan versi yang lebih baru, Anda hanya perlu menulis isi metode Main
. Pengkompilasi menghasilkan kelas Program
dengan metode titik entri dan menempatkan semua pernyataan tingkat atas Anda ke dalam metode tersebut. Nama metode yang dihasilkan tidak Main
, ini adalah detail implementasi yang tidak dapat dirujuk oleh kode Anda secara langsung. Anda tidak perlu menyertakan elemen program lain, pengkompilasi menghasilkannya untuk Anda. Anda dapat mempelajari selengkapnya tentang kode yang dihasilkan pengompilasi saat menggunakan pernyataan tingkat atas dalam artikel tentang pernyataan tingkat atas di bagian dasar-dasar Panduan C#.
Anda memiliki dua opsi untuk bekerja dengan tutorial yang tidak diperbarui untuk menggunakan templat .NET 6+:
- Gunakan gaya program baru, menambahkan pernyataan tingkat atas baru saat Anda menambahkan fitur.
- Konversikan gaya program baru ke gaya yang lebih lama, dengan kelas
Program
dan metodeMain
.
Jika Anda ingin menggunakan templat lama, lihat Menggunakan gaya program lama nanti di artikel ini.
Gunakan gaya program baru
Fitur yang membuat program baru lebih sederhana adalah pernyataan tingkat atas , direktif global using
, dan direktif implisit using
.
Istilah pernyataan tingkat atas berarti pengkompilasi menghasilkan elemen kelas dan metode untuk program utama Anda. Kelas dan metode titik masuk yang dihasilkan oleh pengkompilasi dideklarasikan dalam namespace global. Anda dapat melihat kode untuk aplikasi baru dan membayangkan bahwa itu berisi statemen di dalam metode Main
yang dihasilkan oleh template-template sebelumnya, tetapi pada namespace global.
Anda dapat menambahkan lebih banyak pernyataan ke program, sama seperti Anda dapat menambahkan lebih banyak pernyataan ke metode Main
Anda dengan gaya tradisional. Anda dapat args
akses (argumen baris perintah), menggunakan await
, dan mengatur kode keluar. Anda bahkan dapat menambahkan fungsi. Fungsi-fungsi tersebut dibuat sebagai fungsi lokal yang diletakkan di dalam metode titik masuk yang dibuat. Fungsi lokal tidak dapat menyertakan pengubah akses apa pun (misalnya, public
atau protected
).
Baik pernyataan tingkat atas maupun arahan implisit using
menyederhanakan kode yang membentuk aplikasi Anda. Untuk mengikuti tutorial yang sudah ada, tambahkan pernyataan baru ke file Program.cs yang dihasilkan oleh templat. Anda dapat membayangkan bahwa pernyataan yang Anda tulis berada di antara kurung kurawal terbuka dan penutup dalam metode Main
dalam instruksi tutorial.
Jika Anda lebih suka menggunakan format yang lebih lama, Anda dapat menyalin kode dari contoh kedua dalam artikel ini, dan melanjutkan tutorial seperti sebelumnya.
Anda dapat mempelajari lebih lanjut tentang pernyataan tingkat atas melalui eksplorasi tutorial tentang pernyataan tingkat atas.
Arahan using
implisit
Istilah direktif using
implisit berarti kompilator secara otomatis menambahkan serangkaian arahan using
berdasarkan jenis proyek. Untuk aplikasi konsol, arahan berikut secara implisit disertakan dalam aplikasi:
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
Jenis aplikasi lain mencakup lebih banyak namespace yang umum untuk jenis aplikasi tersebut.
Jika Anda memerlukan direktif using
yang tidak disertakan secara implisit, Anda dapat menambahkannya ke file .cs yang berisi pernyataan tingkat atas atau ke file .cs lainnya. Untuk arahan using
yang Anda butuhkan di semua file .cs dalam aplikasi, gunakan arahan using
global .
Menonaktifkan arahan using
implisit
Jika Anda ingin menghapus perilaku ini dan mengontrol semua namespace layanan secara manual dalam proyek Anda, tambahkan <ImplicitUsings>disable</ImplicitUsings>
ke file proyek Anda di elemen <PropertyGroup>
, seperti yang ditunjukkan dalam contoh berikut:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>
</Project>
Arahan global using
Direktif using
global mengimpor namespace untuk seluruh aplikasi Anda alih-alih satu file. Arahan global ini dapat ditambahkan baik dengan menambahkan item <Using>
ke file proyek, atau dengan menambahkan direktif global using
ke file kode.
Anda juga dapat menambahkan item <Using>
dengan atribut Remove
ke file proyek Anda untuk menghapus direktif using
implisit tertentu. Misalnya, jika fitur direktif using
implisit diaktifkan dengan <ImplicitUsings>enable</ImplicitUsings>
, menambahkan item <Using>
berikut menghapus namespace System.Net.Http
dari yang diimpor secara implisit:
<ItemGroup>
<Using Remove="System.Net.Http" />
</ItemGroup>
Gunakan gaya program lama
Dimulai dengan .NET SDK 6.0.300, templat console
memiliki opsi --use-program-main
. Gunakan untuk membuat proyek konsol yang tidak menggunakan pernyataan tingkat atas dan memiliki metode Main
.
dotnet new console --use-program-main
Program.cs
yang dihasilkan adalah sebagai berikut:
namespace MyProject;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
Menggunakan gaya program lama di Visual Studio
Saat Anda membuat proyek baru, langkah-langkah penyiapan akan membawa Anda ke halaman penyiapan Informasi tambahan. Pada halaman ini, pilih kotak centang Jangan gunakan pernyataan tingkat atas.
Setelah proyek Anda dibuat, konten
Program.cs
adalah sebagai berikut:namespace MyProject; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } }
Nota
Visual Studio mempertahankan nilai untuk opsi lain kali Anda membuat proyek berdasarkan templat yang sama, jadi secara default saat membuat proyek Aplikasi Konsol lain kali kotak centang "Jangan gunakan pernyataan tingkat atas" akan dicentang.
Konten file Program.cs
mungkin berbeda untuk mencocokkan gaya kode yang ditentukan dalam pengaturan editor teks Visual Studio global atau file EditorConfig
.
Untuk informasi selengkapnya, lihat Membuat pengaturan editor kustom portabel dengan EditorConfig dan Opsi , Editor Teks, C#,Tingkat Lanjut .