-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnullSafeString.ps1
123 lines (99 loc) · 3.22 KB
/
nullSafeString.ps1
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
if ( $PSVersionTable.PSVersion -lt '3.0' )
{
return
}
Add-Type @"
public class NullsafeString : System.IEquatable<string>,System.IConvertible
{
public string Value = null;
public NullsafeString() {}
public NullsafeString(string v)
{
Value = v;
}
public override bool Equals(System.Object obj)
{
return Value.Equals(obj);
}
public override int GetHashCode()
{
return Value.GetHashCode();
}
public bool Equals(string other)
{
return Value.Equals(other);
}
public System.TypeCode GetTypeCode()
{
return Value.GetTypeCode();
}
public bool ToBoolean(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToBoolean(provider);
}
public byte ToByte(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToByte(provider);
}
public char ToChar(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToChar(provider);
}
public System.DateTime ToDateTime(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToDateTime(provider);
}
public decimal ToDecimal(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToDecimal(provider);
}
public double ToDouble(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToDouble(provider);
}
public short ToInt16(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToInt16(provider);
}
public int ToInt32(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToInt32(provider);
}
public long ToInt64(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToInt64(provider);
}
public sbyte ToSByte(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToSByte(provider);
}
public float ToSingle(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToSingle(provider);
}
override public System.String ToString()
{
return Value;
}
public string ToString(System.IFormatProvider provider)
{
return Value.ToString(provider);
}
public object ToType(System.Type conversionType, System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToType(conversionType, provider);
}
public ushort ToUInt16(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToUInt16(provider);
}
public uint ToUInt32(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToUInt32(provider);
}
public ulong ToUInt64(System.IFormatProvider provider)
{
return ((System.IConvertible)Value).ToUInt64(provider);
}
};
"@