public static unsafe void CopyElements(void *pDst, void *pSrc, int srcLength, int srcIndex, int elementCount, int elementSize) { if ((pDst == null) || (pSrc == null)) { ExceptionUtil.ThrowArgumentNullException(); } if (((srcLength < 0) || (srcIndex < 0)) || (((elementCount < 0) || (elementSize < 1)) || ((srcIndex + elementCount) > srcLength))) { ExceptionUtil.ThrowArgumentOutOfRangeException(); } if (elementCount != 0) { Buffer.MemoryCopy(pSrc + ((void *)(srcIndex * elementSize)), pDst, (long)(elementCount * elementSize), (long)(elementCount * elementSize)); } }
public static IDisposable Combine(IDisposable first, IDisposable second, bool errorOnFinalize = false) { if ((first == null) && (second == null)) { ExceptionUtil.ThrowArgumentNullException((first == null) ? "first" : "second", "either first or second may be null, but not both"); } if ((first != null) && (second != null)) { return(FromAction(delegate { DisposableUtil.Free <IDisposable>(ref first); DisposableUtil.Free <IDisposable>(ref second); }, errorOnFinalize)); } IDisposable disposable = first ?? second; return(FromAction(delegate { DisposableUtil.Free <IDisposable>(ref disposable); }, errorOnFinalize)); }