none
Преобразование проектов C # в VB.NET. VB.NET в C # RRS feed

Все ответы

  • А зачем тебе переводить с C# на VB.NET?  Там же всё одинаково. Достаточно программировать на одном языке и некоторое время потратить на ознакомление с общими синтаксическими конструкциями второго языка, чтобы ориентироваться в коде.

    14 октября 2010 г. 14:28
  • Для меня это пока сложно. Не большие участки кода я могу перевести но вот на уровне всего проэкта возникают трудности, а изучить работу будет понятней на более знакомом языке. На VB.net как думаю так и пишу. А с С# в плане объявления переменных, функций и т.д еще пока не очень понятно. Да и честно VB.net стаж не большой.
    14 октября 2010 г. 21:51
  • Есть вещи, которые практически не поддаются конвертации. Например, инлайновые xml в VB.NET не имеют прямых аналогов в С#. Работа с COM, особенно с Office, до 4-го C# - тоже сомнительное удовольствие.
     
    VB.NET и C# дополняют друг друга, а не заменяют полностью. :)
    15 октября 2010 г. 13:44
  • Да возможно некоторые вещи, конечно, не удастся перевести. Но на уровне примеров  вполне полезная вещь. Т.к в сети не так уж и много на VB.net. И почему его так нелюбят...... (VB.net)  J

    проверка прошла на двух проектах без ошибок и предупреждений, кстати, оба проекта из топика " Автоматическая прокрутка ListBox WPF"

     

    • Изменено a.lisov 15 октября 2010 г. 22:30
    15 октября 2010 г. 21:47
  • Без ошибок - это пока в сторону VB.NET. А вот C# проект от 10к перегонять, промигрированный  с VB6, option strict off - это проверка совсем другого уровня. :)
    15 октября 2010 г. 22:29
  • проверка прошла на двух проектах без ошибок и предупреждений, кстати, оба проекта из топика " Автоматическая прокрутка ListBox WPF"

     


    Тут еще в чем проблема: обычная перегонка кода может быть неудовлетворительной с архитектурной точки зрения.. Например имеем код С++

    void main()

    {

           printf("Hello\n");

           int* p;

           int a[2];

           a[0] = 1; a[1] = 2;

           p = a;

           printf("%d\n", *p);

           p++;

           printf("%d\n", *p);

    }

    =>

           static void Main()

           {

                  Console.Write("Hello\n");

    //C++ TO C# CONVERTER TODO TASK: Pointer arithmetic is detected on this variable, so pointers on this variable are left unchanged.

                  int * p;

                  int[] a = new int[2];

                  a[0] = 1;

                  a[1] = 2;

                  p = a;

                  Console.Write("{0:D}\n", *p);

                  p++;

                  Console.Write("{0:D}\n", *p);

           }

    Пример не очень удачный, но  понятно, что в общем случае в C# вот такой код с указателями - признак плохого программирования, ибо теряются преимущества языка, да и выглядит криво. Другими словами каждый язык имеет свою модель программирования, так вот С++ имеет другую модель и такое copy-past перенесение кода не подойдет в более менее серьезных приложениях.

     

    15 октября 2010 г. 22:49
  • И все таки вы говорите о частных случаях большую часть кода будет переведена правильно. А там где неправильно будет помеченно.

    //C++ TO C# CONVERTER TODO TASK: Pointer arithmetic is detected on this variable, so pointers on this variable are left unchanged.

    Google

     

    // C++ в C # КОНВЕРТЕР TODO ЗАДАЧА: Арифметические операции с указателями обнаружен на эту переменную, так что указатели на этой переменной остается неизменным.

    15 октября 2010 г. 22:51
  • Конечно это не панацея от всего. Но для меня как для начинающего это хороший вариант. Так что возьму эту программу на воооружение. Даже просто интересно посмотреть и сравнить как один и тот же пример выглядит на разных языках. Может что-то и в голове останется. :)

    Подскажите где в интернет можно быстро ознакомиться с общими синтаксическими конструкциями C# или посоветуйте лучше книгу по C#

    16 октября 2010 г. 9:39
  • Посмотри вводное видео на landing page: http://msdn.microsoft.com/ru-ru/ff978686.aspx
    И пройдись по центру разработчика C#  - там есть обучалки основам.
     
    Если у тебя есть опыт на VB - то 95% разницы - это замена Begin/End на {}, скобки вокруг условий и ; в конце каждой строки. В .NET самое сложно не выучить определенный язык, а ориентироваться в базовой библиотеке.
    16 октября 2010 г. 11:48