Переход с С++ на С#

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by procedure, 6 Nov 2008.

  1. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Так, на одном форуме увидел, использую как справочник. Мот, кому пригодиться:
     
    2 people like this.
  2. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    ©http://www.cyberforum.ru/programming-theory/thread12269.html
     
    1 person likes this.
  3. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    про массивы хитро умолчено походу )))
     
  4. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Почему же?
    А если в том смысле что не подробно описано, так этож ведь не для новичков. Если человек знаком с ((С++ || OOП ) && начальным синтаксисом) == большего разьяснения не требуется :D
     
    #4 procedure, 6 Nov 2008
    Last edited: 6 Nov 2008
  5. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Гыг.... забыли только упомянуть, что это совершенно разные языки. Общего у них - ну разве что фигурные скобки.
    А вот от таких справочников - только вред. Поскольку нельзя просто взять и перейти от С++ к С#. Идеология у языков совершенно разная.
     
  6. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    А вот и нет, общего у них много, только синтаксис разный. А что касается идеологии, то тут ты прав.
     
    #6 procedure, 9 Nov 2008
    Last edited: 9 Nov 2008
  7. GlOFF

    GlOFF Elder - Старейшина

    Joined:
    8 May 2006
    Messages:
    689
    Likes Received:
    484
    Reputations:
    4
    Ох, столько критики опять :) Ну +, читаемо :)
     
  8. 0x22b

    0x22b Elder - Старейшина

    Joined:
    1 Dec 2007
    Messages:
    114
    Likes Received:
    32
    Reputations:
    9
    Мелкософт своим C#-ом и платформой NET одеяло просто на себя тянет.
    Так все таки отличия или переход? Переходов сдесь делать никаких ненадо, С++ отличный и мощный инструмент, при чем без всяких там виртуальных сред исполнения и прочей ерунды! + ко всему можно писать кроссплатформенные приложения на Qt4..
     
  9. Namelles One

    Namelles One Elder - Старейшина

    Joined:
    8 Jul 2005
    Messages:
    43
    Likes Received:
    14
    Reputations:
    19
    Дабы не разводить холивар - я сам знаю их этих двоих только С++ и пишу только на нем, в частности, в связке с Qt.

    Но, чем тебе C# .NET - не кроссплатформенное? Слова Mono, кои прекрасно работают, что на Никсах, что на Маках - тебе ни о чем не говорят?

    Идеология и правда разная - все-таки скорость разработки, но в то же время и степень оптимизации конечного продукта - разные и весьма)
     
    1 person likes this.
  10. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Ну да, можно конечно полность ю освоить тяжелую науку борьбы с граблями и заплатить 3 килобакса за Qt...
    А можно просто использовать качественный клон джавы от МС, который избавит от кучи UB, ручной работы с памятью, различного поведения компиляторов и прочей дряни.
     
    2 people like this.
  11. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    споры о виртуальных песочницах ни к чему не приведут как и вопрос Вляпываться в песочницу или не вляпываться! Это из разряда вроде по делу а по сути флуд!
     
    1 person likes this.
  12. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Еще хотелось бы добавить, тем кто собирается переходить на C# с С++ важно к прочтению http://msdn.microsoft.com/ru-ru/vcsharp/default.aspx
    Это наиболее полная справочная информация, содержащая в себе статьи, видео уроки, справочник C#, описание классов, функций, свойств и.т.д.
    -----
    А вообще, не советовал бы вам читать, тонну литературы, (лишь только в том случае если вы не знаете ООП) наилучший опыт и знания получают на практике ;)
     
  13. jawbreaker

    jawbreaker Elder - Старейшина

    Joined:
    7 Jul 2008
    Messages:
    156
    Likes Received:
    76
    Reputations:
    3
    Решил добавить список фич в С# в зависимости от версии:
    C# 2.0
    - ключевое слово partial позволяет разделять реолизацию класса более чем на один файл:
    file1.cs:
    PHP:
    public partial class MyClass
    {
        public 
    void MyMethod1()
        {
            
    // Manually written code
        
    }
    }
    file2.cs:
    PHP:
    public partial class MyClass
    {
        public 
    void MyMethod2()
        {
            
    // Automatically generated code
        
    }
    }
    - Обобщённые, или параметризованные типы (generics). В отличие от шаблонов C++, они поддерживают некоторые дополнительные возможности и работают на уровне виртуальной машины. Вместе с тем, параметрами обобщенного типа не могут быть выражения.
    - Новая форма итератора, позволяющая создавать сопрограммы с помощью ключевого слова yield, подобно Python'у.
    PHP:
    public static IEnumerable<intGetEven(IEnumerable<intnumbers)
    {
        foreach (
    int i in numbers)
        {
            if (
    == 0) yield return i;
        }
    }
    этот код вернёт все чётные числа из numbers
    - Анонимные методы, обеспечивающие функциональность замыкания.
    - Обнуляемые ('nullable') типы-значения (обозначаемые вопросительным знаком, например, int? i = null;), представляющие собой те же самые типы-значения, только могущие принимать также значение null. Такие типы позволяют улучшить взаимодействие с базами данных через язык SQL.
    PHP:
    intnull;
    object o i;
    if (
    == null)
        
    Console.WriteLine("Correct behaviour - runtime version from September 2005 or later");
    else
        
    Console.WriteLine("Incorrect behaviour - pre-release runtime (from before September 2005)");
    C# 3.0
    - интегрированный язык запросов LINQ(Language-Integrated Query)
    PHP:
    int[] array = { 15210};
     
    // Выбрать квадраты нечётных чисел в массиве отсортировав в убывающем порядке
    IEnumerable<intquery from x in array
                             
    where x == 1
                             orderby x descending
                             select x 
    x;
    - Инициализация объекта вместе с его свойствами:
    PHP:
    Customer c = new Customer Name="James" };
    - Лямбда-выражения:
    PHP:
        listOfFoo.Where(delegate(Foo x) { return x.size 10; });
        
    // превратится в
        
    listOfFoo.Where(=> x.size 10); 
    - Подразумеваемый тип локальной переменной:
    PHP:
    var "hello"
    //вместо 
    string x "hello";
    - Анонимные типы:
    PHP:
    var = new { Name "James" };
    - Методы-расширения — добавление метода в существующий класс с помощью ключевого слова this при первом параметре статической функции.
    PHP:
    public static class StringExtensions
    {
        public static 
    string Left(this string sint n)
        {
            return 
    s.Substring(0n);
        }
    }
     
    string s "foo";
    s.Left(3); // то же что и StringExtensions.Left(s, 3);
    C# 3.0 будет совместим с C# 2.0 по генерируемому MSIL-коду; улучшения в языке — чисто синтаксические и реализуются на этапе компиляции. Например, многие из интегрированных запросов LINQ можно уже сейчас осуществить, используя безымянные делегаты в сочетании с предикатными методами над контейнерами вроде List.FindAll и List.RemoveAll.