Всем привет.хочу научится новым знаниям,и выбрал этот язык программирования.работать планирую в дальнейшем работать в нео,а там яп C#. Но я практически не узнаю этого языка.поэтому и прошу вас помочь мне разобраться!какие книги вы посоветуете!и есть ли какие ни будь сайты с примерами и урокам?сижу с телефона,не могу посмотреть сам!заранее спасибо. DiamonD - мой сайт...
Всем привет.хочу научится новым знаниям,и выбрал этот язык программирования.работать планирую в дальнейшем работать в нео,а там яп C#. Но я практически не узнаю этого языка.поэтому и прошу вас помочь мне разобраться!какие книги вы посоветуете!и есть ли какие ни будь сайты с примерами и урокам?сижу с телефона,не могу посмотреть сам!заранее спасибо.
Для начала, С# и С++ похожи, в основном, только названием. У них разная идеология. Что именно ты хочешь?
Учебник Деётелов хороший, но уж очень муторно(на мой взгляд). Еще Очень понравилась книга Джеси Либерти(освой за 21 день)! По-мойму она и есть самая лучшая, материал идет последовательно(а не как у некоторых...феее), доступно и понятно даже школьнику))
Для начала, С# и С++ похожи, в основном, только названием.
Бред. С# создан на основе синтаксиса С++, так что база у них идентична. Переучиться с ++ на # можно за неделю, простые программы можно писать практически сразу. А вот наоборот, с шарпа на плюсы, перейти не так просто.
Бред. С# создан на основе синтаксиса С++, так что база у них идентична. Переучиться с ++ на # можно за неделю, простые программы можно писать практически сразу. А вот наоборот, с шарпа на плюсы, перейти не так просто.
Сам себе противоречишь
Quote (Акунёк)
Очень понравилась книга Джеси Либерти(освой за 21 день)
я в прошлом году взялся за C++, потому что при попытке показать друзям свои первые опыты на C# - ничего не запустилось, потомучто у них Фреймворк не был установлен. И я взялся за C++. Сложный он. Но всё же из-за Unity3d пришлось и C# учить. Это кастрированный C++. в C# все упростили. Моя страничка по дизайну GameDev//Design//3D Ютубчик
Самая новая книга по шарпу C# 4.0 Полное руководство По С++ также советую книги Шилдта.
я бы не стал пренебрегать данным советом.
Схожесть по синтаксису не дает единой идеологии.
Про С и С++ тоже можно сказать что они схожи по синтаксису, более того второй является логическим продолжением первого, собственно как и С# является логическим продолжением второго, переняв компоновку у Java.
Однако различия довольна сильные. Разве нет? О_о:
Some notable distinguishing features of C# are: - There are no global variables or functions. All methods and members must be declared within classes. Static members of public classes can substitute for global variables and functions.
- Local variables cannot shadow variables of the enclosing block, unlike C and C++. Variable shadowing is often considered confusing by C++ texts.
- C# supports a strict Boolean datatype, bool. Statements that take conditions, such as while and if, require an expression of a type that implements the true operator, such as the boolean type. While C++ also has a boolean type, it can be freely converted to and from integers, and expressions such as if(a) require only that a is convertible to bool, allowing a to be an int, or a pointer. C# disallows this "integer meaning true or false" approach on the grounds that forcing programmers to use expressions that return exactly bool can prevent certain types of common programming mistakes in C or C++ such as if (a = b) (use of assignment = instead of equality ==).
- In C#, memory address pointers can only be used within blocks specifically marked as unsafe, and programs with unsafe code need appropriate permissions to run. Most object access is done through safe object references, which always either point to a "live" object or have the well-defined null value; it is impossible to obtain a reference to a "dead" object (one which has been garbage collected), or to a random block of memory. An unsafe pointer can point to an instance of a value-type, array, string, or a block of memory allocated on a stack. Code that is not marked as unsafe can still store and manipulate pointers through the System.IntPtr type, but it cannot dereference them.
- Managed memory cannot be explicitly freed; instead, it is automatically garbage collected. Garbage collection addresses the problem of memory leaks by freeing the programmer of responsibility for releasing memory which is no longer needed.
- In addition to the try...catch construct to handle exceptions, C# has a try...finally construct to guarantee execution of the code in the finally block.
- Multiple inheritance is not supported, although a class can implement any number of interfaces. This was a design decision by the language's lead architect to avoid complication and simplify architectural requirements throughout CLI.
- C# is more type safe than C++. The only implicit conversions by default are those which are considered safe, such as widening of integers. This is enforced at compile-time, during JIT, and, in some cases, at runtime. There are no implicit conversions between booleans and integers, nor between enumeration members and integers (except for literal 0, which can be implicitly converted to any enumerated type). Any user-defined conversion must be explicitly marked as explicit or implicit, unlike C++ copy constructors and conversion operators, which are both implicit by default. Starting with version 4.0, C# supports a "dynamic" data type that enforces type checking at runtime only.
- Enumeration members are placed in their own scope.
- C# provides properties as syntactic sugar for a common pattern in which a pair of methods, accessor (getter) and mutator (setter) encapsulate operations on a single attribute of a class.
- Full type reflection and discovery is available.
- C# currently (as of version 4.0) has 77 reserved words.
- Checked exceptions are not present in C# (in contrast to Java). This has been a conscious decision based on the issues of scalability and versionability.
Другое дело что с С++ на шарп перейти проще потому, что там нет строгости с++. С++ также легко перейти к php. Собственно никаких проблем, синтаксис также похож, море готовых функций делающих всю работы за Вас, а вот с Php на с++ так легко не получится, по той же причине. Строгость и идеология С++.
Да Шарп логическое продолжение С++, но у них разная концепция и идеология именно поэтому он и выделен как язык программирования, а не как расширение стандарта с++.
Какой холивар. Мы же не меряемся возможностями языков) Просто не нужно Vinchensoo, вводить людей в заблуждение. У С# и С++ много общего и кроме названия. А то, что языки кроме того имеют сильные различия я и не отрицаю.
Извините конечно, но данное высказывание - глупость. Сказать такое можно, лишь ознакомившись с этими языками на весьма посредственном уровне. С# чистый ООП язык, все основные сущности языка являются объектами, что в конечном итоге значительно упрощает объектно-ориентированное проектирование. С++ же вобрал в себя всю гибкость языка Си вкупе с крайне неудобным объектно-ориентированным подходом( недостаточно высокий уровень ОО абстракции, за счет попытки расширить процедурный язык своими костылями ). Также не совсем понятно чего кастрировали в C#. Код разделили на managed и unmanaged, грубо говоря, все, что managed это safe, unmanaged соответственно unsafe. В unsafe контексте можно работать со всем наследием Си напрямую( указатели ). Не подумайте, что разжигаю холивар, просто не хочется оставлять незамеченными некомпетентные высказывания.
C# - хороший ЯП ,но раздражает одна вещь:для того чтобы прога заработала,человеку приходиться скачать и установить Net.Framework,а если человек по каким то причинам не может или не хочет, скачать что-то еще чтобы заработала прога/игра, то как-то не хорошо получается...
Сообщение отредактировал Stas96 - Четверг, 03 Марта 2011, 19:12
Фреймворк 3.5 по умолчанию стоит на семерке, в дальнейшем виндусы будут идти со свежей(на момент выхода конечно) версией фреймворка. Обвинять С# за фреймворк все равно, что обвинять Java за JRE. Концепция такая.
Фреймворк 3.5 по умолчанию стоит на семерке, в дальнейшем виндусы будут идти со свежей(на момент выхода конечно) версией фреймворка. Обвинять С# за фреймворк все равно, что обвинять Java за JRE. Концепция такая.
Любое дополнительное ПО- минус. Вот вас статистика по ОС: тык
Stas96, С помощью специальных инструментов, например .Net Reactor-а, можно перекодировать C# программу так, что она будет запускаться без Net.Framework. Windmill 2
А какая разница, если фреймворк будет в поставке? Т.е когда нативный бинарник юзает функции из стандартных либ винды - это ок, а фреймворк от той же майкрософт не ок?
Можно просто сделать статичную сборку. В шарпе приложения управляемые. Кому-то это хорошо, кому-то плохо. Каждый волен сам выбирать. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.