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 sebuah program. Untuk .NET 5 dan versi yang lebih lama, templat aplikasi konsol menghasilkan kode berikut:
using System;
namespace MyApp // Note: actual namespace depends on the project name.
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Kedua bentuk ini mewakili program yang sama. Keduanya berlaku dengan C# 10.0. Saat Anda menggunakan versi yang lebih baru, Anda hanya perlu menulis isi metode Main
. Pengkompilasi menghasilkan Program
kelas dengan metode titik masuk dan menempatkan semua pernyataan tingkat atas Anda dalam metode tersebut. Nama metode yang dihasilkan bukan 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 lebih lanjut tentang kode yang dihasilkan pengompilasi saat Anda 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 belum 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
Program
kelas danMain
metode.
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, arahan globalusing
, dan arahan implisitusing
.
Istilah pernyataan tingkat atas berarti pengkompilasi menghasilkan elemen kelas dan metode untuk program utama Anda. Pengkompilasi yang dihasilkan kelas dan metode titik masuk dideklarasikan dalam namespace layanan global. Anda dapat melihat kode untuk aplikasi baru dan membayangkan bahwa itu berisi pernyataan di dalam Main
metode yang dihasilkan oleh templat sebelumnya, tetapi di namespace global.
Anda dapat menambahkan lebih banyak pernyataan ke program, sama seperti Anda dapat menambahkan lebih banyak pernyataan ke metode Anda Main
dalam gaya tradisional. Anda dapat mengakses args
(argumen baris perintah), menggunakan await
, dan mengatur kode keluar. Anda bahkan dapat menambahkan fungsi. Mereka dibuat sebagai fungsi lokal yang disarangkan di dalam metode titik masuk yang dihasilkan. Fungsi lokal tidak dapat menyertakan pengubah akses apa pun (misalnya, public
atau protected
).
Pernyataan tingkat atas dan arahan implisit using
menyederhanakan kode yang membentuk aplikasi Anda. Untuk mengikuti tutorial yang sudah ada, tambahkan pernyataan baru apa pun 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 Main
metode 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 dalam eksplorasi tutorial pada pernyataan tingkat atas.
Arahan implisit using
Istilah arahan implisitusing
berarti pengkompilasi 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 using
direktif yang tidak disertakan secara implisit, Anda dapat menambahkannya ke file .cs yang berisi pernyataan tingkat atas atau ke file .cs lainnya. Untuk using
arahan yang Anda butuhkan di semua file .cs dalam aplikasi, gunakan arahan globalusing
.
Menonaktifkan direktif implisit using
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 <PropertyGroup>
elemen , seperti yang ditunjukkan dalam contoh berikut:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>
</Project>
Arahan using
global
Direktif global using
mengimpor namespace layanan untuk seluruh aplikasi Anda alih-alih satu file. Arahan global ini dapat ditambahkan baik dengan menambahkan <Using>
item ke file proyek, atau dengan menambahkan arahan global using
ke file kode.
Anda juga dapat menambahkan <Using>
item dengan Remove
atribut ke file proyek Anda untuk menghapus arahan implisit using
tertentu. Misalnya, jika fitur arahan implisit using
diaktifkan dengan <ImplicitUsings>enable</ImplicitUsings>
, menambahkan item berikut <Using>
akan menghapus namespace layanan dari yang diimpor secara implisit System.Net.Http
:
<ItemGroup>
<Using Remove="System.Net.Http" />
</ItemGroup>
Gunakan gaya program lama
Dimulai dengan .NET SDK 6.0.300, console
templat memiliki --use-program-main
opsi. Gunakan untuk membuat proyek konsol yang tidak menggunakan pernyataan tingkat atas dan memiliki Main
metode .
dotnet new console --use-program-main
Yang dihasilkan Program.cs
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 menavigasi ke halaman Penyiapan informasi tambahan. Pada halaman ini, pilih kotak centang Jangan gunakan pernyataan tingkat atas.
Setelah proyek Anda dibuat,
Program.cs
kontennya adalah sebagai berikut:namespace MyProject; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } }
Catatan
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 Program.cs
file mungkin berbeda untuk mencocokkan gaya kode yang ditentukan dalam pengaturan editor teks Visual Studio global atau EditorConfig
file.
Untuk informasi selengkapnya, lihat Membuat pengaturan editor kustom portabel dengan EditorConfig dan Options, Text Editor, C#, Advanced.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk