我在带有 C# 8 的 .NET Core 3.1 中有这个简单的控制台程序:
using System;
namespace ConsoleApp34
{
public interface ITest
{
public void test()
{
Console.WriteLine("Bye World!");
}
}
public class Test : ITest
{
public void CallDefault()
{
((ITest)(this)).test();
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
var t = new Test();
t.CallDefault();
}
}
}
我不明白为什么演员阵容是必要的((ITest)(this)).test();
Test 直接派生自 ITest,因此,根据定义,'this' IS ITest
谢谢你。