Почему же? А если в том смысле что не подробно описано, так этож ведь не для новичков. Если человек знаком с ((С++ || OOП ) && начальным синтаксисом) == большего разьяснения не требуется
Гыг.... забыли только упомянуть, что это совершенно разные языки. Общего у них - ну разве что фигурные скобки. А вот от таких справочников - только вред. Поскольку нельзя просто взять и перейти от С++ к С#. Идеология у языков совершенно разная.
Мелкософт своим C#-ом и платформой NET одеяло просто на себя тянет. Так все таки отличия или переход? Переходов сдесь делать никаких ненадо, С++ отличный и мощный инструмент, при чем без всяких там виртуальных сред исполнения и прочей ерунды! + ко всему можно писать кроссплатформенные приложения на Qt4..
Дабы не разводить холивар - я сам знаю их этих двоих только С++ и пишу только на нем, в частности, в связке с Qt. Но, чем тебе C# .NET - не кроссплатформенное? Слова Mono, кои прекрасно работают, что на Никсах, что на Маках - тебе ни о чем не говорят? Идеология и правда разная - все-таки скорость разработки, но в то же время и степень оптимизации конечного продукта - разные и весьма)
Ну да, можно конечно полность ю освоить тяжелую науку борьбы с граблями и заплатить 3 килобакса за Qt... А можно просто использовать качественный клон джавы от МС, который избавит от кучи UB, ручной работы с памятью, различного поведения компиляторов и прочей дряни.
споры о виртуальных песочницах ни к чему не приведут как и вопрос Вляпываться в песочницу или не вляпываться! Это из разряда вроде по делу а по сути флуд!
Еще хотелось бы добавить, тем кто собирается переходить на C# с С++ важно к прочтению http://msdn.microsoft.com/ru-ru/vcsharp/default.aspx Это наиболее полная справочная информация, содержащая в себе статьи, видео уроки, справочник C#, описание классов, функций, свойств и.т.д. ----- А вообще, не советовал бы вам читать, тонну литературы, (лишь только в том случае если вы не знаете ООП) наилучший опыт и знания получают на практике
Решил добавить список фич в С# в зависимости от версии: 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<int> GetEven(IEnumerable<int> numbers) { foreach (int i in numbers) { if (i % 2 == 0) yield return i; } } этот код вернёт все чётные числа из numbers - Анонимные методы, обеспечивающие функциональность замыкания. - Обнуляемые ('nullable') типы-значения (обозначаемые вопросительным знаком, например, int? i = null, представляющие собой те же самые типы-значения, только могущие принимать также значение null. Такие типы позволяют улучшить взаимодействие с базами данных через язык SQL. PHP: int? i = null; object o = i; if (o == 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 = { 1, 5, 2, 10, 7 }; // Выбрать квадраты нечётных чисел в массиве отсортировав в убывающем порядке IEnumerable<int> query = from x in array where x % 2 == 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 => x.size > 10); - Подразумеваемый тип локальной переменной: PHP: var x = "hello"; //вместо string x = "hello"; - Анонимные типы: PHP: var x = new { Name = "James" }; - Методы-расширения — добавление метода в существующий класс с помощью ключевого слова this при первом параметре статической функции. PHP: public static class StringExtensions { public static string Left(this string s, int n) { return s.Substring(0, n); } } string s = "foo"; s.Left(3); // то же что и StringExtensions.Left(s, 3); C# 3.0 будет совместим с C# 2.0 по генерируемому MSIL-коду; улучшения в языке — чисто синтаксические и реализуются на этапе компиляции. Например, многие из интегрированных запросов LINQ можно уже сейчас осуществить, используя безымянные делегаты в сочетании с предикатными методами над контейнерами вроде List.FindAll и List.RemoveAll.