我正在查看我继承的一些代码。我添加了PrintSpecialInfo()
方法,并在尝试调用它时获取下面的错误显示。我对SpecialPermit
类混淆。是Permit
和System.Windows.Forms.UserControl
的多个继承情况吗?如何从btnSave_Click
方法访问PrintSpecialInfo
?
允许part.cs
public partial class Permit : System.IComparable
{
public partial class SpecialPermit : Permit
{
public virtual void PrintSpecialInfo()
{
System.Diagnostics.Trace.WriteLine("Permit.part.cs.PrintSpecialInfoTab --------------------");
System.Diagnostics.Trace.WriteLine("tId: " + this.Id);
}
}
}
Specialpermit.cs
public partial class SpecialPermit : System.Windows.Forms.UserControl
{
private void btnSave_Click (object sender, System.EventArgs e)
{
this.PrintSpecialInfo(); // SpecialPermit does not contain a definition for PrintSpecialInfo and no accessible extension method accepting a first argument of type SpecialPermit could be found
}
}
我看到的方式实际上是2个不同的"专业"对象类型。您不能只添加"部分",并期望命名空间交织。从技术上讲,第一个是NAMESPACE.Permit.SpecialPermit
,另一个是NAMESPACE.SpecialPermit
同样,两个对象都有超类的事实是赠品,即它们不一样。如评论中指出的那样,C#不允许多个继承。因此,除非"允许"是" usercontrol",否则专业人士的第二个定义将出现汇编错误。
为了回答,您无法访问该方法,因为它不在该对象中。
如果要访问它,则需要确保定义/扩展相同的对象。您发布的代码定义了2种不同的"专业"对象类型。