Recentemente ho trovato del codice durante una recensione che mi ha confuso un po '. Il dev stava usando le strutture per organizzare il codice all'interno di un file più grande. Personalmente non mi piace la pratica ma volevo sentire gli altri pensieri.
Ipotesi: Questa era un'app ASP.MVC con diverse aree specifiche dell'app. Il file Settings.CS ha molte proprietà diverse specifiche per l'app.
Esempio:
public class Settings
{
private static Lazy<Settings> _Settings = new Lazy<Settings>(() => new Settings());
public static Settings Instance
{
get { return _Settings.Value; }
}
public OtherSettings otherSettings;
public MoreSettings moreSettings;
public struct OtherSettings
{
public string OtherConnectionString { get; set; }
}
public struct MoreSettings
{
public string ConnectionString2 { get; set; }
}
}
Le strutture vengono utilizzate come un modo per separare il codice tra diverse aree di app, ma per me non hanno alcun vantaggio funzionale. In nessuna area ho visto le strutture passate direttamente.
Esempio di come sono stati utilizzati:
// Some Other Accessing Class ...
var c = Settings.Instance.moreSettings.ConnectionString2;
Sono stati semplicemente usati come "pseudo namespace".
Preferisco vedere impostazioni più specifiche.cs IE: AppSettings.cs, AppSettings2.cs nei rispettivi spazi dei nomi.