Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
CustomAttributeNamedArgument.cs
Go to the documentation of this file.
1namespace System.Reflection;
2
3public readonly struct CustomAttributeNamedArgument
4{
5 private readonly MemberInfo _memberInfo;
6
8
10 {
11 get
12 {
13 if (!(_memberInfo is FieldInfo fieldInfo))
14 {
15 return ((PropertyInfo)_memberInfo).PropertyType;
16 }
17 return fieldInfo.FieldType;
18 }
19 }
20
22
24
25 public string MemberName => MemberInfo.Name;
26
27 public bool IsField => MemberInfo is FieldInfo;
28
30 {
31 return left.Equals(right);
32 }
33
35 {
36 return !left.Equals(right);
37 }
38
39 public CustomAttributeNamedArgument(MemberInfo memberInfo, object? value)
40 {
41 if ((object)memberInfo == null)
42 {
43 throw new ArgumentNullException("memberInfo");
44 }
45 Type type;
46 if (!(memberInfo is FieldInfo fieldInfo))
47 {
48 if (!(memberInfo is PropertyInfo propertyInfo))
49 {
51 }
52 type = propertyInfo.PropertyType;
53 }
54 else
55 {
56 type = fieldInfo.FieldType;
57 }
58 Type argumentType = type;
59 _memberInfo = memberInfo;
60 _value = new CustomAttributeTypedArgument(argumentType, value);
61 }
62
64 {
65 _memberInfo = memberInfo ?? throw new ArgumentNullException("memberInfo");
66 _value = typedArgument;
67 }
68
69 public override string ToString()
70 {
71 if ((object)_memberInfo == null)
72 {
73 return base.ToString();
74 }
75 return MemberInfo.Name + " = " + TypedValue.ToString(ArgumentType != typeof(object));
76 }
77
78 public override int GetHashCode()
79 {
80 return base.GetHashCode();
81 }
82
83 public override bool Equals(object? obj)
84 {
85 return obj == (object)this;
86 }
87}
static string Argument_InvalidMemberForNamedArgument
Definition SR.cs:706
Definition SR.cs:7
CustomAttributeNamedArgument(MemberInfo memberInfo, CustomAttributeTypedArgument typedArgument)
static bool operator==(CustomAttributeNamedArgument left, CustomAttributeNamedArgument right)
static bool operator!=(CustomAttributeNamedArgument left, CustomAttributeNamedArgument right)
CustomAttributeNamedArgument(MemberInfo memberInfo, object? value)