Что такое эквивалент C # массива memcpy для int?

Это чистое решение для JavaScript без каких-либо библиотек или плагинов:

document.addEventListener('click', function (e) {
    if (hasClass(e.target, 'bu')) {
        // .bu clicked
        // Do your thing
    } else if (hasClass(e.target, 'test')) {
        // .test clicked
        // Do your other thing
    }
}, false);

, где hasClass -

function hasClass(elem, className) {
    return elem.className.split(' ').indexOf(className) > -1;
}

Live demo

Кредит относится к Dave и Sime Vidas

Использование более современных JS, hasClass может быть реализовано как:

function hasClass(elem, className) {
    return elem.classList.contains(className);
}

4
задан m4gik 28 March 2019 в 18:26
поделиться

3 ответа

Возможно, это дубликат, но я не знаю, как его пометить. Вот оригинальный пост: функция memcpy в c #

Из другого поста, кажется, есть несколько вариантов:

  1. Array.Copy
  2. [112 ] Object.MemberwiseClone
  3. ICloneable Interface
0
ответ дан Matthew Salvatore Viglione 28 March 2019 в 18:26
поделиться

Похоже, вы просто хотите использовать

Возвращает преобразованное 32-разрядное целое число со знаком из четырех байтов в указанной позиции в байтовом массиве

int offset =  BitConverter.ToInt32(somebyteData,0);

Примечание : Остерегайтесь порядка байтов [1125 ]

Или вы можете просто использовать операторы сдвига

Хотя если вы хотите использовать memcpy, это зависит от того, какие перегрузки вам нужны, вы можете просто P / вызвать его, если хотите

[DllImport("msvcrt.dll", EntryPoint = "memcpy", CallingConvention = CallingConvention.Cdecl, SetLastError = false)]
public static extern IntPtr memcpy(IntPtr dest, IntPtr src, UIntPtr count);

Однако для указателей последние 2, вероятно, являются хорошими эквивалентами, с [113 ] обладающий наибольшей универсальностью

Копирует указанное количество байтов из исходного массива, начиная с конкретное смещение к целевому массиву, начиная с определенного смещения.

Копирует диапазон элементов из одного массива в другой массив и выполняет приведение типов и упаковку по мере необходимости .

Копирует количество байтов, указанных как длинное целое значение, из одного адреса в памяти в другой .

Копирует данные из управляемого массива в указатель неуправляемой памяти или из указателя неуправляемой памяти в управляемый массив.

0
ответ дан TheGeneral 28 March 2019 в 18:26
поделиться

В c # вы можете сделать что-то вроде:

int offset = m_Response[responseIndex++];
offset <<= 8;
offset |= m_Response[responseIndex++];
offset <<= 8;
...

В конце концов, в offset у вас будет каждый байт.

0
ответ дан dcg 28 March 2019 в 18:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: