我想上一门课,把它分成几个小班,这样就可以更容易地进行维护和阅读。但是我尝试使用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
类是静态的,这样我就不必在使用前对其进行初始化。
答案 0 :(得分:38)
保持命名和修饰符在文件之间保持一致:
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
}
答案 1 :(得分:12)
问题不在于该类是partial
类。问题是您尝试从另一个派生static
类。导出static
类是没有意义的,因为你不能使用多态和其他继承的原因。
如果要定义partial
类,请使用相同的名称和访问修饰符创建类。
答案 2 :(得分:5)
你can not inherit a static class。
静态类是密封的,因此无法继承。他们 不能从除Object之外的任何类继承。
答案 3 :(得分:3)
你不需要覆盖任何东西,只需给它们相同的名称:
public static partial class Facade
{
// this is the 1st part/file
}
public static partial class Facade
{
// this is the 2nd part/file
}
答案 4 :(得分:3)
C#不支持从静态类继承。
你必须在你的班级之间做出选择:
String myStr = "";
...或者您是否希望MachineFacade派生自Facade:
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
}
答案 5 :(得分:0)
虽然我参加聚会来不及了...
根据您的问题描述,我认为您的目标是:
在这种情况下,我建议使用嵌套类:
public static class Facade
{
// some methods
public static class Machine
{
// some other methods
}
}
优点:
Facade.Machine
方法比Facade
方法及其目标域更具体。缺点:
Facade.Machine
方法。Facade.Machine
不会自动具有Facade
中的方法。