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 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 dan Main 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

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

    Visual Studio do not use top-level statements check box

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