.NET 7’deki yenilikler [4]: C# 11’de yerel dosya türleri ile ek kapsam

Saberie

Active member
C# 11, .NET türleri için görünürlük (kapsam) sunar file zaten bilinenlere ek olarak public, private, protected, internal, protected internal VE private protected A.







Dr Holger Schwichtenberg, MAXIMAGO’da Güvenlikle ilgili son derece kritik alanlarda bile yenilik ve deneyime dayalı yazılım geliştirme sunan Baş Teknoloji Uzmanıdır. Aynı zamanda, çok sayıda orta ölçekli ve büyük şirketi yazılım geliştirme ve işletim konusunda 38 tanınmış uzmanla danışmanlık ve eğitimle destekleyen uzman ağı www.IT-Visions.de’nin başkanıdır.







Yeni anahtar kelime ile file Arabirimler, sınıflar, yapılar, numaralandırmalar, temsilciler ve dekore edilmiş kayıtlar, yalnızca tanımlandıkları dosya içinde görünür. Yerleşik türler için file izin verilmedi.


Görünürlük ilk bakışta çelişiyor file Microsoft tarafından yıllarca vaaz edilen ve dosya başına yalnızca tek bir tür bildiren en iyi uygulamalar. Bu türe sahipseniz, ek olarak file donanımlı, dosyanın dışında görünmez ve bu nedenle gereksizdir.

Bununla birlikte, pratikte, örneğin bir sınıfın, yalnızca bu sınıf için başka bir sınıf veya kayıt türü biçiminde geçerli olan kendi kişisel veri yapısına sahip olması nedeniyle, birkaç küçük türü tek bir dosyada bildirmek mantıklı olabilir. Microsoft’un kapsamı var file kaynak oluşturucular için tanıtıldı: diğer oluşturucularla çakışmadan yardımcı sınıflar oluşturabilmelisiniz.

kullanım örneği


Örneğin, üç tür bildiren bir dosyanın içeriğini görüntüleyen kod:


  • arayüz IPerson kapsam ile public
  • Sınıf PersonONLAR IPerson uygulanmış, kapsam dahilinde file
  • Sınıf PersonManager kapsam ile public
Kod şunu gösterir: PersonManager çok iyi bir örnek olabilir Person dış dünyaya (diğer dosyalardaki kod) çünkü örneğe arabirim oluşturabilirler IPerson kullanım. Ama dış dünya örnek olamaz Person girin çünkü bu sınıfı bilmiyor.


namespace NET7Console;

public interface IPerson
{
public int ID { get; set; }
public string? Name { get; set; }
public string GetInfo();
}

file class Person : IPerson
{
public int ID { get; set; }
public string? Name { get; set; }
public string GetInfo() =>
$"{this.GetType().FullName} {this.ID}: {this.Name}";
}

public class PersonManager
{
public int ID { get; set; }
public string? Name { get; set; }

public string GetInfoFromTestPerson()
{
Person p = new();
return p.GetInfo();
}

public IPerson CreatePerson()
{
return new Person();
}

// Nicht möglich: File-local type 'Person' cannot be used
// in a member signature in non-file-local type 'PersonManager'.
//public int GetInfo(Person p)
//{
// return p.GetInfo();
//}
}



olan adamlar file– Kapsamlar, onları benzersiz kılan derleyici tarafından atanan bir ad son eki alır. İsmin yapısı şöyledir: <Dateiname>HEX-ZAHL__Typname.

Erişimi olan bir adam file görünür ebeveyn olan başka bir türü geçersiz kılabilir. Örnek: eğer bir sınıfın yanındaysa Person Person.cs dosyasında internal VEYA public yani başka bir sınıf file class Person Test.cs’de, bu dosya içinde Test.cs türü Person Person.cs’den görünmez.


(RM)



Haberin Sonu
 
Üst