/// <summary> /// Remove component by interface /// </summary> /// <typeparam name="T"></typeparam> internal void Remove <T>() { var t = typeof(T); bool isTrue = _components.TryGet(t.FullName, out ComponentBase c); if (isTrue) { _components.TryRemove(t.FullName); c.OnDestroy(); } else { AssertThat.Fail("ComponentBase is not exist" + t.FullName.ToString()); } }
public void ResetIndex() { switch (State) { case EState.ReadWriteAreEqual: ReadPosition = WritePosition = 0; break; case EState.WriteAhead: var length = WritePosition - ReadPosition; for (int i = 0; i < length; i++) { Buffer[i] = Buffer[ReadPosition + i]; } ReadPosition = 0; WritePosition = length; break; case EState.ReadAhead: AssertThat.Fail("Read and write position error"); break; } }