如果基类作为参数调用,我可以使用派生类函数吗?

c#

我有一个public MyClass(Form form)作为构造函数的类

我可以使用我在从Form这个类派生的类中创建的函数吗?(命名DerivedClass

现在,我就在想,如果检查formDerivedClass再使用它的功能,但它似乎没有工作时。

if (form is DerivedClass)
{
    form.DerivedClassFunction();
}

这样做我得到同样的错误:

“Form”不包含“DerivedClassFunction”的定义

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs1061?f1url=%3FappId%3Droslyn%26k%3Dk(CS1061)

回答

您必须通过以下方式将其转换为派生类型:

if (form is Derived)
{
    ((Derived)form).DerivedClassFunction();
}

或(C# 7 中的新功能):

if (form is Derived derived)
{
    derived.DerivedClassFunction();
}


以上是如果基类作为参数调用,我可以使用派生类函数吗?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>