19、C 类型深度解析:从静态虚拟成员到匿名类型

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);
}

在上述代

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值