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

◆ GetBytes() [1/2]

override long System.Data.Common.DataRecordInternal.GetBytes ( int i,
long dataIndex,
byte[] buffer,
int bufferIndex,
int length )
inline

Definition at line 81 of file DataRecordInternal.cs.

82 {
83 int num = 0;
84 byte[] array = (byte[])_values[i];
85 num = array.Length;
86 if (dataIndex > int.MaxValue)
87 {
88 throw ADP.InvalidSourceBufferIndex(num, dataIndex, "dataIndex");
89 }
90 int num2 = (int)dataIndex;
91 if (buffer == null)
92 {
93 return num;
94 }
95 try
96 {
97 if (num2 < num)
98 {
99 num = ((num2 + length <= num) ? length : (num - num2));
100 }
101 Array.Copy(array, num2, buffer, bufferIndex, num);
102 }
103 catch (Exception e) when (ADP.IsCatchableExceptionType(e))
104 {
105 num = array.Length;
106 if (length < 0)
107 {
108 throw ADP.InvalidDataLength(length);
109 }
110 if (bufferIndex < 0 || bufferIndex >= buffer.Length)
111 {
112 throw ADP.InvalidDestinationBufferIndex(length, bufferIndex, "bufferIndex");
113 }
114 if (dataIndex < 0 || dataIndex >= num)
115 {
116 throw ADP.InvalidSourceBufferIndex(length, dataIndex, "dataIndex");
117 }
118 if (num + bufferIndex > buffer.Length)
119 {
120 throw ADP.InvalidBufferSizeOrIndex(num, bufferIndex);
121 }
122 }
123 return num;
124 }

References System.Data.Common.DataRecordInternal._values, System.array, System.buffer, System.Array.Copy(), System.Data.Common.ADP.InvalidBufferSizeOrIndex(), System.Data.Common.ADP.InvalidDataLength(), System.Data.Common.ADP.InvalidDestinationBufferIndex(), System.Data.Common.ADP.InvalidSourceBufferIndex(), System.Data.Common.ADP.IsCatchableExceptionType(), and System.length.