Коварный вопрос по С#

При каких условиях пройдет данный тест?

1
2
3
4
5
6
7
8
9
10
    [Fact]
    public void NewTest()
    {
      var a = new A();
 
      a.GetType().GetField("b").SetValue(a, 83);
      a.GetType().GetField("c").SetValue(a, 42);
 
      Assert.Equal(a.b, a.c);
    }

Один из вариантов решения под катом. (далее…)

Back to C++

Разработчики Evernote отказались от .Net и перешли снова на C++.

Evernote 4 кардинально отличается от Evernote 3.5 по всем параметрам. Хотя версия 3.5 и добавила множество отличных новых возможностей, в ней мы столкнулись с рядом проблем, которые невозможно было легко исправить: размытый шрифт, долгое время загрузки, большое потребление памяти и плохая поддержка видеокарт. Все это было обусловлено спецификой технологий, лежащих в основе 3.5 (Windows .NET и WPF), на которые мы никак не могли повлиять. В конечном итоге мы скатились к борьбе с ошибками платформы вместо работы над новыми возможностями, о которых нас просили пользователи.

В итоге мы решили начать с нуля, используя только C++, в котором мы были уверены. Как вы сами увидите, результат получился просто удивительный. Эта новая версия положит основу для более быстрого развития Windows-клиента.

В ходе тестирования с аппаратным обеспечением мы установили, что Evernote 4 запускается в пять раз быстрее и использует в два раза меньше памяти, чем Evernote 3.5.

Мне кажется, это очень интересное решение. Команду разработчиков Evernote нельзя обвинить в «криворукости». Я уверен, что у них хватает знаний для написания правильной архитектуры и последующей оптимизации приложения. Видимо команда столкнулись с действительно большими проблемами в производительности, и поняли, что на данной архитектуре не смогут её решить.

Вопросы на собеседовании. Коварный вопрос по Event,Delegate

На собеседованиях любят задавать всякие каверзные вопросы. Одним из любимых вопросов на понимание .net платформы является вопрос про события и делегаты. В лучшем случае спрашивают отличия, в худшем могут задать такой вопрос на засыпку.

Дан код:

1
2
3
4
5
6
7
8
9
10
public class A
{
  public void OnDoWork()
  {
    if ( DoWork != null )
      DoWork(this, EventArgs.Empty);
  }
 
  public event EventHandler DoWork;
}
  1. Что будет с программой, если класс A видоизменить так: убрать ключевое слово event?
  2. Что будет с программой, если вообще во всем коде убрать ключевые слова event?

(далее…)

Вопросы на собеседовании. dotNet и C#

  1. В чем вы видите основную разницу между Convert.ToString(someObject) и someObject.ToString()?
  2. В чем разница между throw; и throw ex;?
  3. Назовите основные на ваш взгляд конструкции используемые при синхронизации работы потоков?
  4. Что такое уровни изоляции транзакции в базах данных, какие основные уровни существуют, в чем их отличия и особенности?
  5. Какие основные атрибуты вы обычно используете при разработке custom control’а? Их назначение? (хотелось услышать что-то типа Browsable, DefaultValue, DesignerSerializationVisibility и т.д.)
  6. Как бы вы поступили если нужно было бы сравнить 2 коллекции по 10000 эллементов в каждой (хотел услышать рассуждения про словари)?

Приведенные выше вопросы относятся к детальным знаниям C# и .Net, а оценить общие знания можно по Programmer Competency Matrix

Вопросы на собеседовании для C# программиста

Интересный пост, содержащий 10-ку вопросов, задаваемых на собеседованиях, которые вызывают наибольшие затруднения:

10. Какие типы можно использовать в предложении foreach? — трудности с ответом на этот вопрос были примерно у 20% кандидатов.

9. В чем различие между классом и структурой? — из вариантов ответов на этот вопрос можно было бы составить подборку наподобие; цитаты из сочинений пятиклассников.

8. Что означает модификатор virtual?. Если после стандартного ответа; член класса, помеченный virtual, будет объявлен виртуальным; попросить более развернутый ответ, это повергает в ступор каждого четвертого.

(далее…)

Страниц: 1 / 2 1 2 Последняя›

Статистика

Яндекс.Метрика

Реклама