【发布时间】:2020-08-14 12:51:29
【问题描述】:
我在带有 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
谢谢。
【问题讨论】:
标签: c# .net-core c#-8.0 default-interface-member