2013-05-27 2 views
2

Я программист на C++, и я работаю над проектом миграции, где мне нужно преобразовать код C++ в C#. У меня мало знаний о C#. Кроме того, миграция завершена на 70% и застревает.Изменение подписи типа

На этапе разработки проекта, люди использовали «строку» как тип для некоторых переменных, вместо класса «MultiValue», как показано ниже:

class MultiValue 
{ 
    public: 
     int valueType; 
     double independentValue; 
     int index; 
     string text; 
     . 
     . 
    // Methods 
} 

Сейчас я нахожусь в положении, когда Мне нужно изменить тип от «string» до «MultiValue».

Мой вопрос: есть ли какой-либо инструмент для рефакторинга кода (кроме клавиатуры, мыши, монитора, кофе и т. Д.: -P) для этой цели?

+0

Вы имеете в виду инструмент для изменения сигнатур метода? Что должно произойти на сайтах call-сайтов (как создать/передать в 'MultiValue' вместо' string')? Или вы хотите создать неявные операторы от 'string' до' MultiValue'? –

+0

Представляется, что это относится к общему инструменту рефакторинга. Но если вы можете придумать действующие правила рефакторинга, вам следует использовать инструмент рефакторинга, о котором вы забыли упомянуть (программист), и написать свой собственный рефакторинг. – Ralf

+0

У меня есть подозрение, что это просто рефакторинг, я не уверен, что есть простое решение, хотя бы потому, что использование 'string' обычно довольно широко распространено, и у вас могут возникнуть проблемы, отличающие общее использование от использования вашего конкретного метода. Возможно, просто измените подпись метода на свой «MultiValue», скомпилируйте, укусите пулю и выработайте ошибки один за другим. Сколько звонков мы говорим здесь в любом случае? –

ответ

0

Resharper, возможно, поможет вам выполнить эту работу, но она не сделает это целиком для вас. Он может найти все возможности использования объекта в пределах своей области. К сожалению, это насколько это возможно.

Используя эту информацию, вы сможете создать перечисление из всех возможных выходов, которые оно найдет, а затем заменить на них исходную переменную.

Смежные вопросы