Aracılığıyla paylaş


Özellikler için ifade gövdesini kullanma (IDE0025)

Mülk Değer
Kural Kimliği IDE0025
Başlık Özellikler için ifade gövdesini kullanma
Kategori Üslup
Alt kategori Dil kuralları (ifade gövdeli üyeler)
Geçerli diller C#
Seçenekleri csharp_style_expression_bodied_properties

Genel bakış

Bu stil kuralı, ifade gövdelerinin ve özellikler için blok gövdelerinin kullanımıyla ilgilidir.

Seçenekler

Özellikler için ifade gövdelerinin veya blok gövdelerinin tercih edilip edilmediğini ve ifade gövdelerinin tercih edilip edilmediğini, bunların yalnızca tek satırlı ifadeler için tercih edilip edilmediğini belirtmek için bu kural için ilişkili seçeneğin değerini ayarlayın.

Seçenekleri yapılandırma hakkında daha fazla bilgi için bkz. Seçenek biçimi.

csharp_stil_ifade_gövdelı_özellikler

Mülk Değer Açıklama
Seçenek adı csharp_style_expression_bodied_properties
Seçenek değerleri true Özellikler için ifade gövdelerini tercih et
when_on_single_line Özelliklerin tek satır olacağı durumlarda ifade gövdelerini tercih edin.
false Özellikler için blok gövdelerini tercih edin
varsayılan seçenek değeri true
// csharp_style_expression_bodied_properties = true
public int Age => _age;

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

Bu kuralla IDE0027 karşılaştırması

Bu kural, IDE0025ve IDE0027 (Erişimciler için ifade gövdesini kullan) ile çok benzer. IDE0025 özelliği bir bütün olarak ilgilendirirken, IDE0027 özellikle özelliğin aksesuar parçalarıyla ilgilidir.

herhangi bir hesaplama yapmadan yalnızca bir değer döndüren salt okunur bir özellik için, IDE0025csharp_style_expression_bodied_properties = false olarak ayarlanırsa ancak IDE0027csharp_style_expression_bodied_accessors = trueolarak ayarlanırsa, şuna benzer bir özellikle karşılaşırsınız:

public int TemperatureF
{
    get => _temp;
}

Ancak IDE0025csharp_style_expression_bodied_properties = trueolarak ayarlarsanız özelliği daha da basitleştirilir (IDE0027csharp_style_expression_bodied_accessors = falseolarak ayarlasanız bile):

public int TemperatureF => _temp;

Okuma-yazma özelliğinde, özellik ifade gövdeli bir şekilde yazılamadığından (birden fazla satırdan oluştuğundan) fark biraz daha belirgin hale gelir. Bu nedenle IDE0025, csharp_style_expression_bodied_properties = trueolarak ayarlansa bile, yine de küme ayraçlarıyla, yani bir blok gövdesiyle karşılaşırsınız.

Aşağıdaki örneklerde bir özelliğin iki seçeneğin çeşitli bileşimleriyle nasıl göründüğü gösterilmektedir.

// 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;
    }
}

Uyarıyı gizleme

Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.

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

Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için önem derecesini yapılandırma dosyasında none olarak ayarlayın.

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

Tüm kod stili kurallarını devre dışı bırakmak için kategori Style önem derecesini yapılandırma dosyasında none olarak ayarlayın.

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

Daha fazla bilgi için bkz. Kod analizi uyarılarını gizleme.

Ayrıca bkz.