C# 7.2 introduce un nuovo access modifier denominato private protected. Un membro di una classe dichiarato come private protected può essere acceduto solamente dalle classi che ereditano dalla classe e che si trovano nello stesso assembly. Per chiarire meglio il concetto con uno frammento di codice.
//assembly A public class Person { private protected Name { get; set; } } public class Teacher : Person { public string GetName() { return $"Teacher name is: {Name}"; //Ok } } //Assembly B public class Student : Person { public string GetName() { return $"Student name is: {Name}"; //Errore di compilazione } }
La classe Teacher può lecitamente accedere alla proprietà Name in quanto eredita da Person e si trova nello stesso assembly. La classe Student si trova in un altro assembly quindi non puè accedere alla proprietà Name e si ottiene un errore in fase di compilazione
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Specificare il versioning nel path degli URL in ASP.NET Web API
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Le novità di Angular: i miglioramenti alla CLI
Reactive form tipizzati con modellazione del FormBuilder in Angular
Installare le Web App site extension tramite una pipeline di Azure DevOps
Creazione di componenti personalizzati in React.js con Tailwind CSS
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
Generare file PDF da Blazor WebAssembly con iText
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Creare alias per tipi generici e tuple in C#