Bagikan melalui


Menggunakan isi ekspresi untuk properti (IDE0025)

Harta benda Nilai
ID Aturan IDE0025
Judul Menggunakan isi ekspresi untuk properti
Kategori Gaya
Subkategori Aturan bahasa (anggota bertubuh ekspresi)
bahasa yang berlaku C#
Opsi csharp_style_expression_bodied_properties

Ikhtisar

Aturan gaya ini menyangkut penggunaan badan ekspresi versus badan blok untuk properti.

Pilihan

Atur nilai opsi terkait untuk aturan ini untuk menentukan apakah badan ekspresi atau badan blok untuk properti lebih disukai, dan jika badan ekspresi lebih disukai, apakah itu lebih disukai hanya untuk ekspresi baris tunggal.

Untuk informasi selengkapnya tentang mengonfigurasi opsi, lihat format Opsi .

csharp_style_expression_bodied_properties

Harta benda Nilai Deskripsi
Nama opsi csharp_style_expression_bodied_properties
nilai opsi true Lebih suka bentuk ekspresi untuk properti
when_on_single_line Lebih suka ekspresi untuk pernyataan properti jika hanya terdiri dari satu baris.
false Lebih suka menggunakan badan blok untuk properti
Nilai opsi default true
// csharp_style_expression_bodied_properties = true
public int Age => _age;

// csharp_style_expression_bodied_properties = false
public int Age { get { return _age; }}

Aturan ini dibandingkan dengan IDE0027

Aturan ini, IDE0025, dan IDE0027 (Gunakan isi ekspresi untuk aksesor) sangat mirip. IDE0025 menyangkut properti secara keseluruhan, sedangkan IDE0027 secara khusus menyangkut bagian aksesor properti.

Untuk properti baca-saja yang hanya mengembalikan nilai tanpa melakukan komputasi apa pun, jika IDE0025 diatur ke csharp_style_expression_bodied_properties = false tetapi IDE0027 diatur ke csharp_style_expression_bodied_accessors = true, Anda berakhir dengan properti yang terlihat seperti ini:

public int TemperatureF
{
    get => _temp;
}

Tetapi jika Anda mengatur IDE0025 ke csharp_style_expression_bodied_properties = true, properti disederhanakan lebih lanjut (bahkan jika Anda mengatur IDE0027 ke csharp_style_expression_bodied_accessors = false):

public int TemperatureF => _temp;

Dalam kasus properti baca-tulis, perbedaannya menjadi sedikit lebih jelas, karena properti tidak dapat diimplementasikan dalam bentuk ekspresi (karena terdiri dari lebih dari satu baris). Jadi bahkan jika IDE0025 diatur ke csharp_style_expression_bodied_properties = true, Anda masih berakhir dengan kurung kurawal, yaitu, tubuh blok.

Contoh berikut menunjukkan tampilan properti dengan berbagai kombinasi dari dua opsi.

// csharp_style_expression_bodied_properties = false
// csharp_style_expression_bodied_accessors = true
public int TemperatureB
{
    get => _temp;
}

// csharp_style_expression_bodied_properties = true
// csharp_style_expression_bodied_accessors = true (or false)
public int TemperatureC => _temp;

// csharp_style_expression_bodied_properties = true (or false)
// csharp_style_expression_bodied_accessors = true
public int TemperatureD
{
    get => _temp;
    set => _temp = value;
}

// csharp_style_expression_bodied_properties = true
// csharp_style_expression_bodied_accessors = false
public int TemperatureE
{
    get
    {
        return _temp;
    }
    set
    {
        _temp = value;
    }
}

Menyembunyikan peringatan

Jika Anda hanya ingin menekan satu pelanggaran, tambahkan direktif praprosesor ke file sumber Anda untuk menonaktifkan dan kemudian mengaktifkan lagi aturan.

#pragma warning disable IDE0025
// The code that's violating the rule is on this line.
#pragma warning restore IDE0025

Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi .

[*.{cs,vb}]
dotnet_diagnostic.IDE0025.severity = none

Untuk menonaktifkan semua aturan gaya kode, atur tingkat keparahan untuk kategori Style ke none dalam file konfigurasi .

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Untuk informasi selengkapnya, lihat Cara menekan peringatan analisis kode.

Lihat juga