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

◆ GetChars()

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

Implements System.Data.IDataRecord.

Definition at line 407 of file DataTableReader.cs.

408 {
409 ValidateState("GetChars");
411 char[] array;
412 try
413 {
414 array = (char[])_currentDataRow[ordinal];
415 }
416 catch (IndexOutOfRangeException e)
417 {
418 ExceptionBuilder.TraceExceptionWithoutRethrow(e);
419 throw ExceptionBuilder.ArgumentOutOfRange("ordinal");
420 }
421 if (buffer == null)
422 {
423 return array.Length;
424 }
425 int num = (int)dataIndex;
426 int num2 = Math.Min(array.Length - num, length);
427 if (num < 0)
428 {
429 throw ADP.InvalidSourceBufferIndex(array.Length, num, "dataIndex");
430 }
431 if (bufferIndex < 0 || (bufferIndex > 0 && bufferIndex >= buffer.Length))
432 {
433 throw ADP.InvalidDestinationBufferIndex(buffer.Length, bufferIndex, "bufferIndex");
434 }
435 if (0 < num2)
436 {
437 Array.Copy(array, dataIndex, buffer, bufferIndex, num2);
438 }
439 else
440 {
441 if (length < 0)
442 {
444 }
445 num2 = 0;
446 }
447 return num2;
448 }
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().