-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathIDotNetGenericParameter.cs
More file actions
51 lines (42 loc) · 1.81 KB
/
IDotNetGenericParameter.cs
File metadata and controls
51 lines (42 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//*****************************************************************************
//* Code Factory SDK
//* Copyright (c) 2020 CodeFactory, LLC
//*****************************************************************************
using System.Collections.Generic;
namespace CodeFactory.DotNet
{
/// <summary>
/// Model contract for information about a parameter used in a generic definition.
/// </summary>
public interface IDotNetGenericParameter:IDotNetModel
{
/// <summary>
/// Flag that determines if the generic parameter uses the out keyword.
/// </summary>
bool HasOutKeyword { get; }
/// <summary>
/// Flag that determines if the generic parameter has a constraint that is must support construction of a new type.
/// </summary>
bool HasNewConstraint { get; }
/// <summary>
/// Flag that determines if the generic parameter has a constraint that it must implement from a class.
/// </summary>
bool HasClassConstraint { get; }
/// <summary>
/// Flag that determines if the generic parameter has a constraint that is must implement from a structure.
/// </summary>
bool HasStructConstraint { get; }
/// <summary>
/// Flag that determines if the generic parameter has constraining types the parameter must ad hear to.
/// </summary>
bool HasConstraintTypes { get; }
/// <summary>
/// The constraining types the generic parameter must ad hear to. If there are no constraining types an empty list will be returned.
/// </summary>
IReadOnlyList<IDotNetType> ConstrainingTypes { get; }
/// <summary>
/// The type definition of the generic parameter.
/// </summary>
IDotNetType Type { get; }
}
}