gpt4 book ai didi

C# - 抽象类扩展类和 new()?

转载 作者:行者123 更新时间:2023-11-30 13:19:58 25 4
gpt4 key购买 nike

在一些现有的代码中,我看到以下内容:

public abstract class BasicComponent<T> : IBasicComponent<T> 
where T : class, new()

我知道什么是抽象类,什么是接口(interface)。但是它对 where T 做了什么?当你扩展 classnew() 时会发生什么?

最佳答案

这些是 generic type constraints .

class是指你使用的T必须是一个类(包括interface、delegate和arrays),new必须是有一个公共(public)的无参数构造函数。

来自链接的 MSDN 文档:

where T : class - The type argument must be a reference type; this applies also to any class, interface, delegate, or array type.

where T : new() - The type argument must have a public parameterless constructor. When used together with other constraints, the new() constraint must be specified last.

关于C# - 抽象类扩展类和 new()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12214536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com