Linux/прощр¦ммист н¦ C++ программисту C#/Windows

При объявлении переменной с помощью ключевого слова var вы должны установить ее значение в той же строке кода таким образом, чтобы компилятор мог определить ее тип.

Если вы не присваиваете ему типизированное значение при объявлении его (анонимный тип также считается типом), компилятор не может знать, какой это тип, и поэтому не будет компилировать код.

Это также, почему вы не можете сделать var x = null; (но вы можете сделать var y = (string)null;).

Вы, вероятно, можете заставить свой код работать с var byteA = new byte[]; (вы сказали, что вам нужен байтовый массив) - или, по крайней мере, для компиляции (я не знаю, что делает функция AddBytes, поэтому вам может потребоваться другой тип) Возможно, IList<type>?)

12
задан heisen 25 September 2008 в 05:21
поделиться

7 ответов

Моим образованием был преимущественно C/Unix и Python с некоторым Java и пыльным VB6 с 2000 годами изготовления вина, когда я сначала использовал C#. Я был знаком с управляемым временем выполнения от работы, которую я сделал с Java, и API .NET имеют несколько подобный стиль к более раннему MS API.

Я нашел Troelsen Pro C# и.Net 2.0 Platform, чтобы быть действительно хорошим ресурсом C#/.Net. Теперь существуют более свежие выпуски.

2
ответ дан 2 December 2019 в 06:28
поделиться

Так как Вы уже знаете, как программировать в C++, проверить:

Введение программистов в C# 2.0, Eric Gunnerson и Nick Wienholt

Хороший баланс между языком ссылочная и общая информация о.NET.

Так же: существенная.NET, объем I: общеязыковая среда выполнения Don Box и Chris продает

Действительно интересный "под покрытиями" сетевая книга (но записанный для версии 1 .NET так может немного устареть).

4
ответ дан 2 December 2019 в 06:28
поделиться

Проверьте книжный нуль dotnet petzold. Это могло бы помочь.

2
ответ дан 2 December 2019 в 06:28
поделиться

Первые вещи рассмотреть при переключении от C++ до C# факта, которые главным образом совместно используют часть поверхностного синтаксиса, но различие парадигм программирования становится больше и больше, поскольку Вы закапываете больше в .NET.

Узнайте базовые парадигмы программирования C# прежде, чем начать еще программировать, Вы могли бы упасть в прерывании записи программ C++ в C#, который не является лучшей идеей длинным фрагментом. Самые важные вещи привыкнуть к:

  • Автоматическое управление памятью и сборка "мусора" включая расположить шаблон. Изучите основы и ловушки.
  • Что является классами, интерфейсами, структурами и примитивами в .NET, и как они ведут себя по сравнению с C++.
  • События, делегаты, свойства, лямбда-выражения, все из которых являются несколько новыми понятиями при прибытии из C++.
  • Дженерики .NET и различия между шаблонами.
  • строки, массивы, пользовательские атрибуты, отражение, исключения и основы поточной обработки в .NET, все они в большой степени используются везде в .NET, и необходимо изучить их запутанность для использования их эффективно.
  • Программирование GUI в Winforms и ASP.NET (и возможно после там WPF), компоненты, controtrols, привязка данных. Модель.Net GUI.

Сначала запустите с универсальной книги .NET, которая представляет Вас всем этим понятиям. Я рекомендую книгу по чтению учебных руководств и статей, в первую очередь, таким образом, у Вас может быть большое полное изображение .NET в конце. Статьи в Интернете не могли бы достигнуть этого. Лучше всего универсальная книга .NET я читал:

Профессиональный C#, 3-й выпуск. Simon Robinson, Christian Nagel, Karli Watson, Jay Glynn, Morgan Skinner, Bill Evjen

Professional C#, 3rd edition, ISBN: 978-0-7645-5759-0

И во-вторых, так как Вы происхождения C++, и Вы привыкли работать близко к металлу и думать способом, который является близко к тому, как аппаратные средства работают (необработанное управление памятью (указатели, выделения мадам, и т.д.) я могу только рекомендовать одну книгу, которая действительно демистифицирует то, что .NET и что он делает:

CLR через C# Jeffrey Richter

CLR via C#, Second Edition ISBN 9780735621633

Я не могу подчеркнуть достаточно, насколько хороший эта книга для каждого разработчика .NET, особенно при прибытии из C++, и в то же время являющегося одной из лучших книг .NET, которые я прочитал. Книга является чистым удовольствием читать и затрагивает темы от:

  • Модель выполнения .NET (от MSIL до собственного кода)
  • Управление памятью (как время выполнения .NET и сборщик "мусора" управляют памятью, расположением "кучи", поколениями памяти, завершением, "кучей" для больших объектов),
  • Разработка типов
  • Загрузка блока, отражение, домены приложения
  • и многое другое...

Это - мой лучший совет, который я мог дать любому на их способе стать опытным разработчиком C# в самое короткое возможное время.

15
ответ дан 2 December 2019 в 06:28
поделиться

Читайте о сборке "мусора" в .NET. Люди, приезжающие из земли C++, привыкли к явному выделению памяти и управлению. В явном управлении памятью C# является фактически несуществующим.

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

В зависимости от продукта Вы продолжаете работать, Вам, возможно, придется обратиться к вызову API-функций Win32 от C#. Это сделано через P/Invoke, таким образом, Вы могли бы хотеть читать немного об этом также. И если необходимо на самом деле использовать его, http://pinvoke.net является очень полезным набором объявлений C# для большинства API Win32.

Вы могли бы также хотеть изучить, по крайней мере, основы COM, поскольку очень часто приложения C#/.Net выбирают/нуждаются снова использовать компоненты от сторонних поставщиков, которые часто реализуются как COM-компоненты. COM является сложной темой все же. Мой фаворит заказывает на COM и Существенном COM Don Box и Профессиональном DCOM инеем Roger. Я заимствовал бы их у библиотеки как все, что необходимо считать, первые несколько глав (если Вы не хотите пойти подробно).

Основное понимание окон, сообщений и очередей сообщений необходимо, если Вы собираетесь записать клиентские приложения. Вы будете использовать Winforms WPF/XAML для них, и обе технологии делают хорошее задание изоляции деталей от Вас; однако, чтобы смочь написать хороший код необходимо знать то, что идет негласно. Я не уверен, чем хорошая книга была бы для этого, но MSDN имеет партию информации.

2
ответ дан 2 December 2019 в 06:28
поделиться

Вовлеките себя копия Resharper. Это - вероятно, единственный лучший инструмент для повышения производительности там для прямого кодирование.

0
ответ дан 2 December 2019 в 06:28
поделиться

Разве основой не должен быть CLR? И разве это не должно быть неважно, какой язык.NET используется? Если бы я просматриваю документы.NET, я могу решить, хотел ли бы я видеть материал в VB.Net, C# или C++. Таким образом, если Вы знаете C++, почему Вы не должны использовать "управляемый С++"?

Отношения Friedrich

-1
ответ дан 2 December 2019 в 06:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: