Can you use quot;wherequot; to require an attribute in c#?(你能用“where吗?在 c# 中需要一个属性?)
问题描述
我想做一个只接受可序列化类的泛型类,可以用 where 约束来完成吗?
I want to make a generic class that accepts only serializable classes, can it be done with the where constraint?
我正在寻找的概念是这样的:
The concept I'm looking for is this:
public class MyClass<T> where T : //[is serializable/has the serializable attribute]
推荐答案
不,恐怕不是.您可以对约束做的唯一事情是:
Nope, I'm afraid not. The only things you can do with constraints are:
where T : class
- T 必须是引用类型where T : struct
- T 必须是不可为空的值类型where T : SomeClass
- T 必须是 SomeClass 或派生自它where T : ISomeInterface
- T 必须是 ISomeInterface 或实现它where T : new()
- T 必须有一个公共的无参数构造函数
where T : class
- T must be a reference typewhere T : struct
- T must be a non-nullable value typewhere T : SomeClass
- T must be SomeClass or derive from itwhere T : ISomeInterface
- T must be ISomeInterface or implement itwhere T : new()
- T must have a public parameterless constructor
各种组合都是可行的,但不是全部.与属性无关.
Various combinations are feasible, but not all. Nothing about attributes.
这篇关于你能用“where"吗?在 c# 中需要一个属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:你能用“where"吗?在 c# 中需要一个属性?


基础教程推荐
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- JSON.NET 中基于属性的类型解析 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01