有一个类定义,如下面的示例:
public abstract partial class MyClass<T> where T : MyClass<T>
{
....
}
第二个文件包含以下定义:
partial class MyClass<T>
{
}
另外,我在第二个文件中定义了部分部分,如下面的代码片段所示:它不是决定性的:
partial class MyClass<T> where T : MyClass<T>
使用partial
关键字将此特定抽象类拆分为两个单独的文件的尝试在C#中失败。因此,令人惊讶的是编译器通过生成编译错误来拦截它。事实上,变量和属性从第一个部分移动到第二个部分,并且编译器在第一个类中给出了一个错误,即找不到变量和属性。
我尝试了很多但没有运气。
在分割这样的定义或者编译器的行为方式时,我们是否存在错误?
答案 0 :(得分:3)
以下是部分泛型类的外观。
public partial class MyClass<T> where T : MyClass<T>
{
public void SomeMethod() { Console.WriteLine("some method"); }
}
public partial class MyClass<T> where T : MyClass<T>
{
public void SomeOtherMethod() { Console.WriteLine("some other method"); }
}
答案 1 :(得分:0)
partial仅用于跨多个源文件拆分类。类定义本身必须相同。