Использование NCrunch с Resharper

Ссылка на строку передается по значению. Существует большая разница между передачей ссылки по значению и передачей объекта по ссылке. К сожалению, слово «ссылка» используется в обоих случаях.

Если вы do передаете ссылку на строку ссылкой , она будет работать так, как вы ожидать:

using System;

class Test
{
    public static void Main()
    {
        string test = "before passing";
        Console.WriteLine(test);
        TestI(ref test);
        Console.WriteLine(test);
    }

    public static void TestI(ref string test)
    {
        test = "after passing";
    }
}

Теперь вам нужно различать внесение изменений в объект, на который ссылается ссылка, и внесение изменений в переменную (например, параметр), чтобы она ссылалась на другой объект , Мы не можем вносить изменения в строку, потому что строки неизменяемы, но мы можем продемонстрировать ее с помощью StringBuilder:

using System;
using System.Text;

class Test
{
    public static void Main()
    {
        StringBuilder test = new StringBuilder();
        Console.WriteLine(test);
        TestI(test);
        Console.WriteLine(test);
    }

    public static void TestI(StringBuilder test)
    {
        // Note that we're not changing the value
        // of the "test" parameter - we're changing
        // the data in the object it's referring to
        test.Append("changing");
    }
}

См. мою статью о передаче параметра для более подробная информация.

23
задан Peter O. 17 November 2011 в 09:05
поделиться

2 ответа

Когда выполняется анализ решения Resharper и nCrunch Boths, он останавливает мой текстовый редактор.

Слишком много для моих шести ядер.

Решение - это 14 проектов и около 120 тыс. Строк кода.

1
ответ дан Slampen 17 November 2011 в 09:05
поделиться

Я использую ReSharper 6 и NCrunch. Если у вас многоядерный компьютер (и вы человек TDD), то NCrunch просто необходим. Он дает постоянную обратную связь о том, как ваш код выглядит с точки зрения тестов. Он мгновенно показывает тестовое покрытие - отличный помощник. ReSharper - инструмент рефакторинга для меня.

Я запускаю тесты с ReSharper, как раньше, NCrunch все время работает в фоновом режиме.

Из того, что я время от времени замечал, NCrunch и ReSharper сообщают о неудачных тестах, когда другой сообщает, что все в порядке. Каждый раз в такой ситуации оказывается, что в коде что-то не так. Когда NCrunch настроен на параллельную работу, могут быть обнаружены некоторые новые недостатки:)

ИМХО они оба дополняют друг друга.

14
ответ дан Peter O. 17 November 2011 в 09:05
поделиться
Другие вопросы по тегам:

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