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.
tanımlayıcı bir türe (sınıf, arabirim, yapı, temsilci veya numaralandırma), üyeye, değişkene veya ad alanına atadığınız addır.
Adlandırma kuralları
Geçerli tanımlayıcılar bu kurallara uymalıdır. C# derleyicisi, şu kurallara uymayan tüm tanımlayıcılar için bir hata oluşturur:
- Tanımlayıcılar bir harf veya alt çizgiyle başlamalıdır (
_
). - Tanımlayıcılar Unicode harf karakterleri, ondalık basamak karakterleri, Unicode bağlanma karakterleri, Unicode birleştirme karakterleri veya Unicode biçimlendirme karakterleri içerebilir. Unicode kategorileri hakkında daha fazla bilgi için bkz. Unicode Kategori Veritabanı.
Tanımlayıcıdaki @
ön ekini kullanarak C# anahtar sözcükleriyle eşleşen tanımlayıcıları bildirebilirsiniz.
@
tanımlayıcı adının bir parçası değildir. Örneğin, @if
if
adlı bir tanımlayıcı bildirir. bu
Geçerli tanımlayıcıların tam tanımı için C# Dil Belirtimi
Önemli
C# dil belirtimi yalnızca harf (Lu, Ll, Lt, Lm veya Nl), rakam (Nd), bağlanma (Bilgisayar), birleştirme (Mn veya Mc) ve biçimlendirme (Cf) kategorilerine izin verir. Bunun dışındaki her şey _
kullanılarak otomatik olarak değiştirilir. Bu, belirli Unicode karakterlerini etkileyebilir.
Adlandırma kuralları
Kurallara ek olarak, tanımlayıcı adları için kurallar .NET API'leri genelinde kullanılır. Bu kurallar adlar için tutarlılık sağlar, ancak derleyici bunların uygulanmasını zorunlu kılmaz. Projelerinizde farklı kuralları kullanabilirsiniz.
Kural gereği, C# programları tür adları, ad alanları ve tüm genel üyeler için PascalCase
kullanır. Ayrıca, dotnet/docs
ekibi .NET Çalışma Zamanı takımının kodlama stilibenimsenen aşağıdaki kuralları kullanır:
Arabirim adları büyük
I
ile başlar.Öznitelik türleri
Attribute
sözcüğüyle biter.Sıralı türler, flagsızlar için tekil bir isim ve bayraklar için çoğul bir ad kullanır.
Tanımlayıcılar ardışık iki alt çizgi (
_
) karakter içermemelidir. Bu adlar derleyici tarafından oluşturulan tanımlayıcılar için ayrılmıştır.Değişkenler, yöntemler ve sınıflar için anlamlı ve açıklayıcı adlar kullanın.
Kısalık yerine netliği tercih edin.
Sınıf adları ve yöntem adları için PascalCase kullanın.
Yöntem parametreleri ve yerel değişkenler için camelCase kullanın.
Hem alanlar hem de yerel sabitler olmak üzere sabit adlar için PascalCase kullanın.
Özel örnek alanları alt çizgiyle (
_
) başlar ve kalan metin camelCased olur.Statik alanlar
s_
ile başlar. Bu kural varsayılan Visual Studio davranışı veyaFramework tasarım yönergelerinin bir parçası değildir, ancakeditorconfig dosyasında yapılandırılabilir . Yaygın olarak bilinen ve kabul edilen kısaltmalar dışında adlarda kısaltma veya akronim kullanmaktan kaçının.
Anlamlı ve açıklayıcı ad alanları kullanın; bunlar, ters alan adı biçimini izlemelidir.
Derlemenin birincil amacını temsil eden derleme adlarını seçin.
Basit döngü sayaçları dışında tek harfli adları kullanmaktan kaçının. Ayrıca, C# yapılarının söz dizimini açıklayan söz dizimi örnekleri genellikle C# dil belirtiminde kullanılan kuralla eşleşen aşağıdaki tek harfli adlarıkullanır. Söz dizimi örnekleri kural için özel durumlardır.
- Yapılar için
S
, sınıflar içinC
kullanın. - Yöntemler için
M
kullanın. - Değişkenler için
v
, parametreler içinp
kullanın. -
r
parametreleri içinref
kullanın.
- Yapılar için
Bahşiş
kod stili adlandırma kurallarını kullanarak, büyük harf kullanımı, önekler, sonekler ve sözcük ayırıcıları içeren adlandırma kurallarını
Aşağıdaki örneklerde, public
olarak işaretlenen öğelerle ilgili yönergeler, protected
ve protected internal
öğeleriyle çalışırken de geçerlidir ve bunların tümü dış arayanlara görünür olması amaçlanmıştır.
Pascal Case
class
, interface
, struct
veya delegate
türünü adlandırırken pascal casing ("PascalCasing") kullanın.
public class DataService
{
}
public record PhysicalAddress(
string Street,
string City,
string StateOrProvince,
string ZipCode);
public struct ValueCoordinate
{
}
public delegate void DelegateType(string message);
Bir interface
adlandırırken, adın önüne bir I
eklemenin yanı sıra Pascal Kasası kullanın. Bu ön ek, tüketicilere bunun bir interface
olduğunu açıkça gösterir.
public interface IWorkerQueue
{
}
Türlerin public
üyelerini, alanlar, özellikler, olaylar gibi adlandırırken PascalCase yazım biçimini kullanın. Ayrıca, tüm yöntemler ve yerel işlevler için Pascal biçimi kullanın.
public class ExampleEvents
{
// A public field, these should be used sparingly
public bool IsValid;
// An init-only property
public IWorkerQueue WorkerQueue { get; init; }
// An event
public event Action EventProcessing;
// Method
public void StartEventProcessing()
{
// Local function
static int CountQueueItems() => WorkerQueue.Count;
// ...
}
}
Konum temelli kayıtlar yazarken, bunlar kaydın genel özellikleri olduğundan parametreler için pascal büyük/küçük harf stilini kullanın.
public record PhysicalAddress(
string Street,
string City,
string StateOrProvince,
string ZipCode);
Konumsal kayıtlar hakkında daha fazla bilgi için bkz.özellik tanımı için konumsal söz dizimi
Deve olayı
private
veya internal
alanlarını adlandırırken "camelCase" kullanın ve bunlara _
öneki ekleyin. Temsilci türü örnekleri de dahil olmak üzere yerel değişkenleri adlandırırken deve kasası kullanın.
public class DataService
{
private IWorkerQueue _workerQueue;
}
Bahşiş
İfade tamamlamayı destekleyen bir IDE'de bu adlandırma kurallarını izleyen C# kodu düzenlenirken, _
yazıldığında nesne kapsamındaki tüm üyeler gösterilir.
static
veya private
internal
alanlarıyla çalışırken, s_
ön ekini ve iş parçacığı statik kullanımı durumunda t_
'ü kullanın.
public class DataService
{
private static IWorkerQueue s_workerQueue;
[ThreadStatic]
private static TimeSpan t_timeSpan;
}
Yöntem parametreleri yazarken camel casing kullanın.
public T SomeMethod<T>(int someNumber, bool isValid)
{
}
C# adlandırma kuralları hakkında daha fazla bilgi için .NET Çalışma Zamanı ekibinin kodlama stilibakın.
Tür parametresi adlandırma yönergeleri
Aşağıdaki yönergeler, genel tür parametrelerindeki tür parametreleri için geçerlidir. Tür parametreleri, genel bir türdeki veya genel bir yöntemdeki bağımsız değişkenlerin yer tutucularıdır. C# programlama kılavuzunda
Tek harfli ad, açıklamaya tam uygunsa ve açıklayıcı bir ad ek değer katmıyorsa, genel tür parametrelerini açıklayıcı adlarla adlandırın.
public interface ISessionChannel<TSession> { /*...*/ } public delegate TOutput Converter<TInput, TOutput>(TInput from); public class List<T> { /*...*/ }
düşünün.
public int IComparer<T>() => 0; public delegate bool Predicate<T>(T item); public struct Nullable<T> where T : struct { /*...*/ }
Açıklayıcı tür parametre adlarını "T" ile önceden ekleyin.
public interface ISessionChannel<TSession> { TSession Session { get; } }
bir tür parametresine parametre adına yerleştirilen kısıtlamaları belirten düşünün. Örneğin,
ISession
kısıtlanmış bir parametreTSession
olarak adlandırılabilir.
Ca1715
Ek adlandırma kuralları
yönergelerini kullanarak
içermeyen örnekler, ad alanı niteliklerini kullanır. Bir ad alanının bir projede varsayılan olarak içeri aktarıldığını biliyorsanız, bu ad alanından adları tam olarak nitelemeniz gerekmez. Nitelenmiş adlar, aşağıdaki örnekte gösterildiği gibi tek bir satır için çok uzunsa nokta (.) sonrasında kesilebilir. var currentPerformanceCounterCategory = new System.Diagnostics. PerformanceCounterCategory();
Diğer yönergelere uymaları için Visual Studio tasarımcı araçları kullanılarak oluşturulan nesnelerin adlarını değiştirmeniz gerekmez.