C # Reflection: В чем разница между FieldInfo.SetValue () и FieldInfo.SetValueDirect ()?

1

Документацию FieldInfo я смог найти, не сравнивал и не противопоставлял эти два метода. Меня интересует, когда нужно использовать друг друга (желательно с небольшим фрагментом кода).

Теги:
reflection

1 ответ

3
Лучший ответ

SetValueDirect принимает параметр TypedReference, и поэтому он должен использоваться, когда необходима совместимость параметров varargs. Это не делает бокс/распаковку значений и проверку доступа. Он работает быстрее, чем SetValue.

С другой стороны, SetValue работает практически во всем остальном. Он выполняет бокс/распаковку параметра, где это необходимо, а также проверяет доступ.

Есть SO, которые обсуждают TypedReferences здесь и здесь - в обоих случаях есть примеры кода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню