Да, я вижу другую тему: Отладчик Visual Studio - автоматическое назначение переменных
Но мне нужно было решение сегодня, и я нашел его, прежде чем увидел его, и мне интересно, есть ли лучшее решение там?
Мой случай:
У меня есть список сущностей, и я установил некоторые свойства, связанные с политикой, на основе множества факторов. Но он еще не реализован или просто я хочу протестировать интерфейс, когда у субъекта есть право, а когда нет (измените его как можно быстрее, чтобы выполнить реальную работу).
Итак, я настроил сущность так, как будто она имеет право, чтобы я мог протестировать пользовательский интерфейс с этим. Но я не хочу разбивать каждый элемент списка и менять флаг с true на false (чтобы проверить другой случай). Я искал способ изменить переменную из отладчика автоматически. Я придумал это решение:
- Установить точку останова
- Установить для него условие, которое является «поддельным», но оно изменит значение переменной
- запуск в режиме отладки
- если мне нужен случай 1. Я включаю точку останова, если мне нужна другая, я отключаю точку останова
Упрощенный пример:
namespace AutoVariable
{
class Program
{
static void Main(string[] args)
{
try
{
new Program().Entrance();
Console.ReadLine();
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e.Message);
}
}
public void Entrance()
{
var entities = new List<Entity>
{
new Entity() { Name = "A" },
new Entity() { Name = "B" },
new Entity() { Name = "C" }
};
entities.ForEach(setRight);
entities.ForEach(Console.WriteLine);
}
protected void setRight(Entity entity)
{
//not implemented
bool hasRight = true;
entity.HasRight = hasRight;
}
}
class Entity
{
public bool HasRight { get; set; }
public string Name { get; set; }
public override string ToString()
{
return string.Format("{0} - {1}", Name, HasRight);
}
}
}
Я установил точку останова для условия: entity.HasRight = hasRight;
с этим условием: (hasRight = false)
поэтому hasRight будет ложным, а точка останова никогда не получит попадание.
Но его можно использовать и в других случаях, например, в посте Джейсона Ирвина вы можете использовать что-то вроде: (userName = "Jason").Length < 1
Итак, мой вопрос, является ли это хорошим решением или я что-то упускаю из «нативного» набора инструментов отладчика?
Заранее спасибо!
негра