Bagikan melalui


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 metode Main.

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

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

    Visual Studio tidak menggunakan kotak centang pernyataan tingkat atas

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