私が持っているクラスをいくつかの小さなクラスに分割して、メンテナンスと読み取りが容易になるようにします。しかし、partial
を使用して分割しようとするこのクラスは静的クラスです。
Stackoverflowの例で、これを行うことが可能であることを確認しましたが、実行すると、静的クラスはオブジェクトから派生する必要があるため、静的クラスから派生できないことを通知し続けます。
だから私はこのセットアップを持っています:
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
}
ポインタはありますか? Facade
クラスを静的にして、使用する前に初期化する必要がないようにします。
ファイル全体で名前と修飾子の一貫性を保つ:
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
}
問題は、クラスがpartial
クラスであることではありません。問題は、別のクラスからstatic
クラスを派生させようとすることです。ポリモーフィズムやその他の継承の理由を利用できなかったため、static
クラスを派生させる意味はありません。
partial
クラスを定義する場合は、同じ名前とアクセス修飾子でクラスを作成します。
静的クラスは封印されているため、継承できません。 Objectを除くどのクラスからも継承できません。
C#は、静的クラスからの継承をサポートしていません。
クラスを静的にするかを選択する必要があります。
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
}
...またはMachineFacadeを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
}
何もオーバーライドする必要はありません。同じ名前を付けるだけです。
public static partial class Facade
{
// this is the 1st part/file
}
public static partial class Facade
{
// this is the 2nd part/file
}