Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DefaultValueAttribute() [1/15]

System.ComponentModel.DefaultValueAttribute.DefaultValueAttribute ( [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type type,
string? value )
inline

Definition at line 18 of file DefaultValueAttribute.cs.

19 {
20 if (type == null)
21 {
22 return;
23 }
24 try
25 {
26 if (TryConvertFromInvariantString(type, value, out var conversionResult2))
27 {
28 _value = conversionResult2;
29 }
30 else if (type.IsSubclassOf(typeof(Enum)) && value != null)
31 {
32 _value = Enum.Parse(type, value, ignoreCase: true);
33 }
34 else if (type == typeof(TimeSpan) && value != null)
35 {
36 _value = TimeSpan.Parse(value);
37 }
38 else
39 {
41 }
42 [RequiresUnreferencedCode("Generic TypeConverters may require the generic types to be annotated. For example, NullableConverter requires the underlying type to be DynamicallyAccessedMembers All.")]
43 static bool TryConvertFromInvariantString([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type typeToConvert, string stringValue, out object conversionResult)
44 {
45 conversionResult = null;
47 {
48 MethodInfo methodInfo = Type.GetType("System.ComponentModel.TypeDescriptor, System.ComponentModel.TypeConverter", throwOnError: false)?.GetMethod("ConvertFromInvariantString", BindingFlags.Static | BindingFlags.NonPublic);
49 Volatile.Write(ref s_convertFromInvariantString, (methodInfo == null) ? new object() : methodInfo.CreateDelegate(typeof(Func<Type, string, object>)));
50 }
51 if (!(s_convertFromInvariantString is Func<Type, string, object> func))
52 {
53 return false;
54 }
55 try
56 {
57 conversionResult = func(typeToConvert, stringValue);
58 }
59 catch
60 {
61 return false;
62 }
63 return true;
64 }
65 }
66 catch
67 {
68 }
69 }
static CultureInfo InvariantCulture
static void Write(ref bool location, bool value)
Definition Volatile.cs:74

References System.ComponentModel.DefaultValueAttribute._value, System.Convert.ChangeType(), System.Reflection.MethodInfo.CreateDelegate(), System.Type.GetType(), System.Globalization.CultureInfo.InvariantCulture, System.TimeSpan.Parse(), System.Enum.Parse(), System.ComponentModel.DefaultValueAttribute.s_convertFromInvariantString, System.type, System.value, and System.Threading.Volatile.Write().