So che non è possibile sovrascrivere le funzioni statiche, ma per quello che sto cercando di fare, sembra il modo più logico per progettare la mia classe.
Ho un metodo che è associato alla mia classe astratta, che voglio lavorare senza che la classe sia istanziata, ma funzionerà diversamente su diverse implementazioni di quella classe astratta (tutte staticamente)
Di solito quando succede capita qualcosa o c'è un modo migliore per avvicinarmi al design, quindi spero che qualcuno qui possa mettermi sulla strada giusta.
Essenzialmente ho una classe astratta di contenuti come:
public abstract class Content{
public virtual void copyAll();
public virtual void VerifyContent();
public static virtual Dictionary<int,Content> ProcessAllFromDT(DataTable dt) //Cannot exist
}
E poi un'implementazione di quella Suoneria e Wallpaper
public class Wallpaper:Content{
public void CopyAll(){...}
public void VerifyContent(){...}
//Loads Wallpapers From DT
public static Dictionary<int,Content> ProcessAllFromDT(DataTable dt){...} //content in this case is a wallpaper
}
Infine sarebbe bello avere qualcosa del tipo:
public void ProcessAllContent<T>() where T:Content{
...
var dictionary = T.ProcessAllFromDT(dt); // Doesn't compile.
}
Suggerimenti su un design migliore per ciò che sto cercando di fare qui?