Skip to content

M_Cyjb_TypeUtil_UniqueCloseDefinitionFrom

CYJB edited this page Mar 20, 2024 · 13 revisions

TypeUtil.UniqueCloseDefinitionFrom 方法

沿着指定 Type 的继承链向上查找,直到找到当前泛型类型定义的封闭构造类型。

Namespace: Cyjb
Assembly: Cyjb (in Cyjb.dll) Version: 1.0.23+7750dd8e971297c5fa962a3bee37fb78f72793f6

语法

C#

public static Type? UniqueCloseDefinitionFrom(
	this Type definition,
	Type type
)

参数

 

definition
Type: System.Type
要获取封闭构造类型的泛型类型定义。
type
Type: System.Type
要查找继承链的类型。

返回值

Type: Type
如果当前的泛型类型定义是 type 继承链中类型的泛型定义, 或者是 type 实现的接口的泛型定义, 或者 type 是泛型类型参数且当前泛型类型定义是 type 的约束之一, 则为相应的封闭构造类型。否则为 null

备注

在 Visual Basic 和 C# 中,这个方法可以当成为类型Type的实例方法来调用。在采用实例方法语法调用这个方法时,请省略第一个参数。请参考 扩展方法 (Visual Basic)扩展方法 (C# 编程指南) 获取更多信息。

Exceptions

 

异常 条件
ArgumentNullException definitionnull
ArgumentNullException typenull

Remarks

如果一个类将同一个接口实现了多次,那么该接口对应的封闭构造类型就不是唯一的。

示例

下面是 UniqueCloseDefinitionFrom(Type, Type) 方法的简单示例:

Console.WriteLine(typeof(IEnumerable<>).UniqueCloseDefinitionFrom(typeof(List<int>)));
// 输出:System.Collections.Generic.IEnumerable`1[System.Int32]

参见

Reference

TypeUtil 类
Cyjb 命名空间

Clone this wiki locally