我使用了 Visual Studio Code 的 Polyglot 笔记本,并按照下面指示的顺序在 3 个单独的单元格中写入了以下内容。
单元格 1:
class Z;
单元格2:
class A
{
public static void f()
{
Console.WriteLine(Z.x);
}
}
单元格 3:
class Z: A
{
public static int x = 42;
}
然后我按顺序执行了这些单元格,并收到以下错误消息。
'Z' does not contain a definition for 'x'
我原来的问题是:
在 C# 中,是否可以编写一个(可能是抽象的)类
A
,该类具有签名为 的(可能是静态的)函数void f(B b)
,其参数的类型B
是从A
(class B: A {...}
) 派生的(可能是抽象的)类? 如果不能,为什么不能?
标题是“ C# 类可以使用派生类吗?”
我根据这个表述接受了下面的答案。这个表述后来被另一个编辑我的问题的用户删除,并更改了标题。