Je veux prendre un cours que j'ai et le diviser en plusieurs petits cours pour qu'il soit plus facile à maintenir et à lire. Mais cette classe que j'essaie de diviser en utilisant partial
est une classe statique.
J'ai vu dans un exemple sur Stackoverflow que cela était possible mais quand je le fais, il me dit toujours que je ne peux pas dériver d'une classe statique car les classes statiques doivent dériver d'un objet.
J'ai donc cette configuration:
public static class Facade
{
// A few general methods that other partial facades will use
}
public static partial class MachineFacade : Facade
{
// Methods that are specifically for Machine Queries in our Database
}
Des pointeurs? Je veux que la classe Facade
soit statique pour ne pas avoir à l'initialiser avant utilisation.
Gardez les noms et les modificateurs cohérents entre les fichiers:
public static partial class Facade
{
// A few general methods that other partial facades will use
}
public static partial class Facade
{
// Methods that are specifically for Machine Queries in our Database
}
Le problème n'est pas que la classe est une classe partial
. Le problème est que vous essayez de dériver une classe static
d'une autre. Il est inutile de dériver une classe static
car vous ne pouvez pas utiliser le polymorphisme et d'autres raisons d'héritage.
Si vous souhaitez définir une classe partial
, créez la classe avec le même nom et le même modificateur d'accès.
Vous ne pouvez pas hériter d'une classe statique .
Les classes statiques sont scellées et ne peuvent donc pas être héritées. Ils ne peuvent hériter d'aucune classe sauf Object.
C # ne prend pas en charge l'héritage d'une classe statique.
Vous devez choisir entre que vos cours soient statiques:
public static class Facade
{
// A few general methods that other partial facades will use
}
public static partial class MachineFacade
{
// Methods that are specifically for Machine Queries in our Database
}
... ou si vous souhaitez que MachineFacade dérive de Facade:
public class Facade
{
// A few general methods that other partial facades will use
}
public partial class MachineFacade : Facade
{
// Methods that are specifically for Machine Queries in our Database
}
vous n'avez pas besoin de remplacer quoi que ce soit, donnez-leur simplement le même nom:
public static partial class Facade
{
// this is the 1st part/file
}
public static partial class Facade
{
// this is the 2nd part/file
}