Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
.editorconfig dosyanızda sınıflar, özellikler ve yöntemler gibi .NET programlama dili kod öğeleriniz için adlandırma kurallarını ve derleyicinin veya IDE'nin bu kuralları nasıl zorunlu kılacağını tanımlayabilirsiniz. Örneğin, büyük harfe çevirmeyen bir genel üyenin derleyici hatası olarak değerlendirilmesini veya özel bir alan ile başlamaması durumunda bir _derleme uyarısı verilmesini belirtebilirsiniz.
Özellikle, üç bölümden oluşan bir adlandırma kuralı tanımlayabilirsiniz:
- Kuralın uygulandığı sembol grubu , örneğin genel üyeler veya özel alanlar.
- Kuralla ilişkilendirilecek adlandırma stili; örneğin, adın büyük harfle yazılması veya alt çizgiyle başlaması gerekir.
- Sembol grubuna dahil edilen kod öğeleri adlandırma stiline uymadığında iletinin önem düzeyi.
Genel söz dizimi
Yukarıdaki varlıklardan herhangi birini (adlandırma kuralı, simge grubu veya adlandırma stili) tanımlamak için aşağıdaki söz dizimini kullanarak bir veya daha fazla özellik ayarlayın:
<kind>.<entityName>.<propertyName> = <propertyValue>
Belirli kind bir öğe için tüm özellik ayarları ve entityName bu belirli varlık tanımını oluşturur.
Her özellik yalnızca bir kez ayarlanmalıdır, ancak bazı ayarlar birden çok virgülle ayrılmış değere izin verir.
Özelliklerin sırası önemli değildir.
<kind> Değerler
<kind> , tanımlandığı varlık türünü (adlandırma kuralı, simge grubu veya adlandırma stili) belirtir ve aşağıdakilerden biri olmalıdır:
| Için bir özellik ayarlamak için: |
<kind> Değerini kullanma |
Örnek |
|---|---|---|
| Adlandırma kuralı | dotnet_naming_rule |
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion |
| Sembol grubu | dotnet_naming_symbols |
dotnet_naming_symbols.interface.applicable_kinds = interface |
| Adlandırma stili | dotnet_naming_style |
dotnet_naming_style.pascal_case.capitalization = pascal_case |
<entityName>
<entityName> , birden çok özellik ayarlarını tek bir tanım ile ilişkilendiren, seçtiğiniz açıklayıcı bir addır. Örneğin, aşağıdaki özellikler iki sembol grubu tanımı interface oluşturur ve typesbunların her birinde iki özellik ayarlanmıştır.
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum, delegate
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
<propertyName> ve <propertyValue>
Adlandırma kuralı, sembol grubu veya adlandırma stili gibi her varlık türünün, aşağıdaki bölümlerde açıklandığı gibi kendi desteklenen özellikleri vardır.
Sembol grubu özellikleri
Gruba hangi simgelerin dahil olduğunu sınırlamak için sembol grupları için aşağıdaki özellikleri ayarlayabilirsiniz. Tek bir özellik için birden çok değer belirtmek için değerleri virgülle ayırın.
| Özellik | Açıklama | İzin verilen değerler | Zorunlu |
|---|---|---|---|
applicable_kinds |
1. gruptaki simge türleri |
* (tüm simgeleri belirtmek için bu değeri kullanın)namespaceclassstructinterfaceenumpropertymethodfieldeventdelegateparametertype_parameterlocallocal_function |
Evet |
applicable_accessibilities |
Gruptaki simgelerin erişilebilirlik düzeyleri |
* (tüm erişilebilirlik düzeylerini belirtmek için bu değeri kullanın)publicinternal veya friendprivateprotectedprotected_internal veya protected_friendprivate_protectedlocal (bir yöntem içinde tanımlanan simgeler için) |
Evet |
required_modifiers |
Simgeleri yalnızca belirtilen tüm değiştiricilerle eşleştir 2 |
abstract veya must_inheritasyncconstreadonlystatic veya shared3 |
Hayır |
Notlar:
- Tanımlama grubu üyeleri şu anda içinde
applicable_kindsdesteklenmiyor. - Sembol grubu özelliğindeki tüm. Bu özelliği atlarsanız, eşleşme için belirli değiştiriciler gerekmez. Bu, simge değiştiricilerinin bu kuralın uygulanıp uygulanmaması üzerinde hiçbir etkisi olmadığı anlamına gelir.
- Grubunuz veya özelliğine sahipse
static, grup örtük olaraksharedrequired_modifiersconstolduğundan semboller de ekler.static/SharedAncak, adlandırma kuralınınstaticsimgelereconstuygulanmasını istemiyorsanız, sembol grubuylaconstyeni bir adlandırma kuralı oluşturabilirsiniz. Yeni kural, kural sırasına göre öncelik kazanır. -
classC# kayıtlarını içerir.
Adlandırma stili özellikleri
Adlandırma stili, kuralla zorlamak istediğiniz kuralları tanımlar. Örneğin:
- Ile büyük harfe çevirme
PascalCase - Şununla başlar:
m_ - Şununla biter:
_g - Sözcükleri şu şekilde ayırın:
__
Adlandırma stili için aşağıdaki özellikleri ayarlayabilirsiniz:
| Özellik | Açıklama | İzin verilen değerler | Zorunlu |
|---|---|---|---|
capitalization |
Simge içindeki sözcükler için büyük harfe çevirme stili | pascal_casecamel_casefirst_word_upperall_upperall_lower |
Evet1 |
required_prefix |
Bu karakterlerle başlamalıdır | Hayır | |
required_suffix |
Bu karakterlerle bitmelidir | Hayır | |
word_separator |
Simge içindeki sözcüklerin bu karakterle ayrılması gerekir | Hayır |
Notlar:
- Adlandırma stilinizin bir parçası olarak büyük harfe çevirme stili belirtmeniz gerekir, aksi takdirde adlandırma stiliniz yoksayılabilir.
Adlandırma kuralı özellikleri
Kuralın geçerli olması için tüm adlandırma kuralı özellikleri gereklidir.
| Özellik | Açıklama |
|---|---|
symbols |
Başka bir yerde tanımlanan bir sembol grubunun adı; adlandırma kuralı bu gruptaki simgelere uygulanacak |
style |
Bu kuralla ilişkilendirilmesi gereken adlandırma stilinin adı; stil başka bir yerde tanımlanır |
severity |
Adlandırma kuralının uygulandığı önem derecesini ayarlar. İlişkili değeri kullanılabilir önem derecelerinden birine ayarlayın.1 |
Notlar:
- Adlandırma kuralı içindeki önem derecesi belirtimine yalnızca Visual Studio gibi geliştirme IDE'leri içinde uyulur. Bu ayar C# veya VB derleyicileri tarafından anlaşılmadığından derleme sırasında dikkate alınmaz. Derlemede adlandırma stili kurallarını zorunlu kılmak için bunun yerine kod kuralı önem derecesi yapılandırmasını kullanarak önem derecesini ayarlamanız gerekir. Daha fazla bilgi için bu GitHub konusuna bakın.
Kural sırası
Adlandırma kurallarının EditorConfig dosyasında tanımlanma sırası önemli değildir. Adlandırma kuralları, kuralların tanımlarına göre otomatik olarak sıralanır. Erişim özellikleri, değiştiriciler ve simgelerle ilgili daha belirli kurallar, daha az belirli kurallardan önceliklidir. Kurallar arasında çakışma varsa veya kural sıralaması sorunlara neden oluyorsa, iki kuralın kesişimini, türetildiği daha geniş kurallardan öncelikli olan yeni bir kurala bölebilirsiniz. Örnekler için bkz . Örnek: Çakışan adlandırma stratejileri ve Örnek: const değiştirici içerir static ve readonly.
Not
Visual Studio'nun Visual Studio 2019'dan önceki bir sürümünü kullanıyorsanız, adlandırma kuralları EditorConfig dosyasında en özelden en az özele sıralanmalıdır. Uygulanabilen ilk kural, uygulanan tek kuraldır. Ancak, aynı ada sahip birden çok kural özelliği varsa, bu ada sahip en son bulunan özellik önceliklidir. Daha fazla bilgi için bkz . Dosya hiyerarşisi ve öncelik.
Örnek: Çakışan adlandırma stratejileri
Aşağıdaki iki adlandırma kuralını göz önünde bulundurun:
- Genel yöntemler PascalCase'tir.
- Zaman uyumsuz yöntemler ile
"Async"biter.
Yöntemler için public async hangi kuralın öncelikli olduğu belirgin değildir. Yöntemler için public async yeni bir kural oluşturabilir ve adlandırmayı tam olarak belirtebilirsiniz.
Örnek: const değiştirici ve içerir staticreadonly
Aşağıdaki iki adlandırma kuralını göz önünde bulundurun:
- Sabit alanlar PascalCase'tir.
- Ortak
staticolmayan alanlar s_camelCase.
Kural 2 daha belirgindir ve öncelik alır, bu nedenle genel olmayan tüm sabit alanlar s_camelCase. Sorunu çözmek için bir kesişim kuralı tanımlayabilirsiniz: genel olmayan sabit alanlar PascalCase'tir.
Varsayılan adlandırma stilleri
Herhangi bir özel adlandırma kuralı belirtmezseniz, aşağıdaki varsayılan stiller kullanılır:
Herhangi bir erişilebilirliğe sahip sınıflar, yapılar, numaralandırmalar, özellikler, yöntemler ve olaylar için varsayılan adlandırma stili Pascal büyük/küçük harftir.
Erişilebilirliği olan arabirimler için varsayılan adlandırma stili, I ön ekinin gerekli olduğu Pascal büyük/küçük harftir.
Kod Kuralı Kimliği: IDE1006 (Naming rule violation)
Tüm adlandırma seçenekleri kural kimliğine IDE1006 ve başlığına Naming rule violationsahiptir. Adlandırma ihlallerinin önem derecesini bir EditorConfig dosyasında aşağıdaki söz dizimiyle genel olarak yapılandırabilirsiniz:
dotnet_diagnostic.IDE1006.severity = <severity value>
Önem derecesi değeri derlemede zorunlu tutulmalı warning veya error olmalıdır. Tüm olası önem derecesi değerleri için bkz . önem düzeyi.
Örnek: Genel üye büyük harf kullanımı
Aşağıdaki .editorconfig dosyası, işaretlenmiş readonly genel özelliklerin, yöntemlerin, alanların, olayların ve temsilcilerin büyük harfle yazılması gerektiğini belirten bir adlandırma kuralı içerir. Bu adlandırma kuralı, değerleri ayırmak için virgül kullanarak kuralın uygulanacağı birden çok simge türünü belirtir.
[*.{cs,vb}]
# Defining the 'public_symbols' symbol group
dotnet_naming_symbols.public_symbols.applicable_kinds = property,method,field,event,delegate
dotnet_naming_symbols.public_symbols.applicable_accessibilities = public
dotnet_naming_symbols.public_symbols.required_modifiers = readonly
# Defining the 'first_word_upper_case_style' naming style
dotnet_naming_style.first_word_upper_case_style.capitalization = first_word_upper
# Defining the 'public_members_must_be_capitalized' naming rule, by setting the
# symbol group to the 'public symbols' symbol group,
dotnet_naming_rule.public_members_must_be_capitalized.symbols = public_symbols
# setting the naming style to the 'first_word_upper_case_style' naming style,
dotnet_naming_rule.public_members_must_be_capitalized.style = first_word_upper_case_style
# and setting the severity.
dotnet_naming_rule.public_members_must_be_capitalized.severity = suggestion
Örnek: Alt çizgi içeren özel örnek alanları
Bu .editorconfig dosya parçacığı, özel örnek alanlarının bir _ile başlamasını zorunlu tutar; bu kurala uyulmazsa, IDE bunu bir derleyici hatası olarak kabul eder. Özel statik alanlar yoksayılır.
Simge grubunu yalnızca sahip olduğu tanımlayıcılara (örneğin, static veya readonly) göre tanımlayabileceğinizden, sahip olmadığı tanımlayıcılarla (örneğin, bir örnek alanı olmadığından) tanımlayabildiğiniz staticiçin iki adlandırma kuralı tanımlamanız gerekir:
- Tüm özel alanlar (
staticveya değil) bunlara derleyiciunderscoredolarak uygulanmış adlandırma stiline sahiperrorolmalıdır. - ile
staticözel alanlar, önem düzeyi olan adlandırma stiline sahipunderscoredolmalıdır; başka bir deyişle, bu durumu yoksayınnone.
[*.{cs,vb}]
# Define the 'private_fields' symbol group:
dotnet_naming_symbols.private_fields.applicable_kinds = field
dotnet_naming_symbols.private_fields.applicable_accessibilities = private
# Define the 'private_static_fields' symbol group
dotnet_naming_symbols.private_static_fields.applicable_kinds = field
dotnet_naming_symbols.private_static_fields.applicable_accessibilities = private
dotnet_naming_symbols.private_static_fields.required_modifiers = static
# Define the 'underscored' naming style
dotnet_naming_style.underscored.capitalization = pascal_case
dotnet_naming_style.underscored.required_prefix = _
# Define the 'private_fields_underscored' naming rule
dotnet_naming_rule.private_fields_underscored.symbols = private_fields
dotnet_naming_rule.private_fields_underscored.style = underscored
dotnet_naming_rule.private_fields_underscored.severity = error
# Define the 'private_static_fields_none' naming rule
dotnet_naming_rule.private_static_fields_none.symbols = private_static_fields
dotnet_naming_rule.private_static_fields_none.style = underscored
dotnet_naming_rule.private_static_fields_none.severity = none
Bu örnek, varlık tanımlarının yeniden kullanılabilmesini de gösterir. Adlandırma underscored stili hem hem de private_fields_underscoredprivate_static_fields_none adlandırma kuralları tarafından kullanılır.