C# 类型深度解析:从静态虚拟成员到匿名类型
1. 静态虚拟成员
C# 11.0 为接口引入了一个重要的新特性:可以定义静态虚拟成员。这是 .NET 7.0 中通用数学这一显著新特性的基础。
当接口声明静态方法、属性、事件或自定义运算符时,现在可以使用 virtual 关键字(此时必须提供默认实现)或 abstract 关键字进行声明。这样声明的接口成员就是静态虚拟成员,表明任何实现该接口的类型都将有一个对应的静态成员。
以下是相关示例代码:
// 具有静态抽象属性的接口
public interface ITotalCount
{
static abstract int TotalCount { get; }
}
// 具有静态虚拟属性的接口
public interface IHanded
{
static virtual string Side => "Right";
}
public class LeftHanded : IHanded
{
public static string Side => "Left";
}
public class DefaultHandedness : IHanded
{
}
// 使用静态虚拟成员的通用方法
public static void ShowHandedness<T>() where T : IHanded
{
Console.WriteLine(T.Side);
}
在上述代
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



