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

◆ GetBytes()

override long System.Data.DataTableReader.GetBytes ( int ordinal,
long dataIndex,
byte?[] buffer,
int bufferIndex,
int length )
inline

Implements System.Data.IDataRecord.

Definition at line 349 of file DataTableReader.cs.

350 {
351 ValidateState("GetBytes");
353 byte[] array;
354 try
355 {
356 array = (byte[])_currentDataRow[ordinal];
357 }
358 catch (IndexOutOfRangeException e)
359 {
360 ExceptionBuilder.TraceExceptionWithoutRethrow(e);
361 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
362 }
363 if (buffer == null)
364 {
365 return array.Length;
366 }
367 int num = (int)dataIndex;
368 int num2 = Math.Min(array.Length - num, length);
369 if (num < 0)
370 {
371 throw ADP.InvalidSourceBufferIndex(array.Length, num, "dataIndex");
372 }
373 if (bufferIndex < 0 || (bufferIndex > 0 && bufferIndex >= buffer.Length))
374 {
375 throw ADP.InvalidDestinationBufferIndex(buffer.Length, bufferIndex, "bufferIndex");
376 }
377 if (0 < num2)
378 {
379 Array.Copy(array, dataIndex, buffer, bufferIndex, num2);
380 }
381 else
382 {
383 if (length < 0)
384 {
386 }
387 num2 = 0;
388 }
389 return num2;
390 }
static ArgumentOutOfRangeException InvalidSourceBufferIndex(int maxLen, long srcOffset, string parameterName)
Definition ADP.cs:927
static ArgumentOutOfRangeException InvalidDestinationBufferIndex(int maxLen, int dstOffset, string parameterName)
Definition ADP.cs:932
static Exception InvalidDataLength(long length)
Definition ADP.cs:942
void ValidateState(string caller)

References System.Data.DataTableReader._currentDataRow, System.Data.ExceptionBuilder.ArgumentOutOfRange(), System.array, System.buffer, System.Array.Copy(), System.Data.Common.ADP.InvalidDataLength(), System.Data.Common.ADP.InvalidDestinationBufferIndex(), System.Data.Common.ADP.InvalidSourceBufferIndex(), System.length, System.Math.Min(), System.Data.ExceptionBuilder.TraceExceptionWithoutRethrow(), System.Data.DataTableReader.ValidateReader(), and System.Data.DataTableReader.ValidateState().