public virtual bool Write <T>(IntPtr address, T value) => WriteBytes(address, GenericsConverter.ManagedToBytes(value));
public virtual T Read <T>(IntPtr address) => GenericsConverter.BytesToManaged <T>(ReadBytes(address, Marshal.SizeOf <T>()));
public virtual bool WriteManaged <T>(IntPtr address, T value) { return(WriteBytes(address, GenericsConverter.ManagedToBytes(value))); }
public bool CallFunction <T>(IntPtr address, T args) => CallFunction(address, GenericsConverter.ManagedToBytes(args));
public virtual T ReadManaged <T>(IntPtr address) => GenericsConverter.BytesToManaged <T>(this[address, Marshal.SizeOf <T>()]);