Расскажите что нибудь о C#

Тема в разделе ".NET", создана пользователем Normann, 11 окт 2007.

  1. Normann

    Normann Well-Known Member

    Регистрация:
    9 авг 2007
    Сообщения:
    168
    Симпатии:
    2
    Есть кто нибудь кто знает или пишет на С++? - поделитесь впечатлениями о C#. Я знаю C++ не полностью (пока еще учу) и заинтересовался языком C# но зря учить не хочу т.к. времени на лишнее нету (вдруг не мое). Расскажите что нибудь о преимуществах и недостатках этого языка относительно C++ если можете, и еще хотелось бы получить какое нибудь сравнение с VB.

    И к стати, ребят, как вам здесь без указателей живется? А Юнионы остались?

    З.Ы. Только пожалуйста, не направляйте меня на статьи, мне не нужна реклама языка (а то потом некому будет рекламации предъявлять :D ), я хочу услышать мнение реальных пользователей (во множественном числе) вроде вас, это более практично (ИМХО)
     
  2. alexBlack

    alexBlack Гость

    Писать нужно не на языке, а с использованием языка.
     
  3. LuMee

    LuMee Well-Known Member

    Регистрация:
    2 май 2006
    Сообщения:
    477
    Симпатии:
    0
    +1

    Язык - это, в сущности, малая часть того, что нужно знать и уметь для создания хороших программ. Тот же C# можно не напрягаясь освоить за неделю, а вот научиться грамотно строить архитектуры приложений, эффективно используя средства, предоствляемые платформой .NET - это уже совсем другая история :)
    Если же сравнивать чисто языки, то C# проще, без указателей в нем живется весьма комфортно (совершенно не ощущаю в них потребности), юнионов в нем вроде нет - да и не нужны, в общем-то. Одним словом, для разработки прикладного ПО - самое то :)
    Насчет VB, с обычным VB (до версии 6.0) его сравнивать не имеет смысла - просто разные языки, призванные решать разные задачи. В сравнении с VB.NET лично мне C# кажется более лаконичным и выразительным, хотя это уже дело вкуса, ИМХО. Во всяком случае, все, что пишется на C#, может быть легко реализовано на VB.NET, ну и наоборот.
    В целом мое мнение - если планируешь заниматься разработкой ПО под Windows, то платформу .NET и какой-то из ее языков (C# или VB.NET) знать необходимо, т.к. она по сути стала основным иструментом для создания Windows-приложений. Без работы не останешься полюбому :)
     
  4. Normann

    Normann Well-Known Member

    Регистрация:
    9 авг 2007
    Сообщения:
    168
    Симпатии:
    2
    <!--QuoteBegin-alexBlack+12:10:2007, 07:59 -->
    <span class="vbquote">(alexBlack @ 12:10:2007, 07:59 )</span><!--QuoteEBegin-->Писать нужно не на языке, а с использованием языка.
    [snapback]81491" rel="nofollow" target="_blank[/snapback]​
    [/quote] Да ну брось, а я то думал что я при помощи среды разработки пишу

    Для: LuMee
    За intro спасибо, только вот пафос был лишний (не по существу).
    Как вы знакомы с C++? Писали что нибудь на нем?

    Про VB меня интересует приближенность простоты разработки этих двух языков (в том случае если вы достаточно знаете VB и что нибудь достойное на нем писали)

    И еще остался нераскрытым вопрос о недостатках C#.
     
  5. LuMee

    LuMee Well-Known Member

    Регистрация:
    2 май 2006
    Сообщения:
    477
    Симпатии:
    0
    Писал, правда, немного (ковырял в свое время WinAPI и MFC). Так что хорошо себе его представляю :unsure:
    С VB.NET сталкивался, разбирая сорцы нескольких библиотечек, сам на нем не писал практически. Однако, судя по увиденному, от C# в плане возможностей он отличается несильно (ну правда некоторых вещей в нем нет, того же using'а, AFAIR), что делает эти языки полностью взаимозаменяемыми.
    Вместе с тем, человеку, знающему С++, синтаксис С# будет привычнее и ближе, хотя, как уже упоминал, это все дело вкуса.
    Недостатки - штука спорная и холиварами чреватая. Так, лично мне не очень нравятся такие вещи:
    1. struct - ИМХО, лишняя штука в ООЯП, вполне можно было бы и без них жить;
    2. не слишком удобные enum'ы: в той же Java enum представляет собой полноценный класс, в котором можно данные хранить и т.п., что делает его более гибким; в C# enum - просто именованная константа, которая, как оказалось, может принимать числовое значение, в самом enum'е не объявленное
    3. отсутствие checked exceptions: понимаю, что эта тема спорная, но все же их отсутствие зачастую ведет к тому, что исключения вообще забывают обрабатывать, а это не есть гут.
     
  6. Normann

    Normann Well-Known Member

    Регистрация:
    9 авг 2007
    Сообщения:
    168
    Симпатии:
    2
    Большое спасибо.
    Может кто нибудь еще поделится впечатлениями.
     
  7. Pasha

    Pasha Гость

    Для: Normann
    Да нет у C# особых фишек. Просто один из языков для платформы .net. IMHO он просто удобнее vb.net, т.к. не тянет за собой хвостов предыдущих версий.
    Для: LuMee
    Struct - это value type, размещается в стэке, не напрягает GC, передается по значению. Вобщем, это скорее изюминка, к ООП действительно отношения не имеет.
    Enum - это value type, размещается в стэке, не напрягает GC, передается по значению. А передача необьявленного значения - изюминка, позволяющая добавлять в enum новые значения, и при этом не перекомпилировать сборки, использующие предыдущие версии.
    Value Type Usage Guidelines.
     
  8. Normann

    Normann Well-Known Member

    Регистрация:
    9 авг 2007
    Сообщения:
    168
    Симпатии:
    2
    Для: sax_ol и Для: Pasha
    А как вам без указателей?

    Для: Pasha
    Извиняюсь, а что подразумевается под хвостами предидущих версий?
     
  9. Normann

    Normann Well-Known Member

    Регистрация:
    9 авг 2007
    Сообщения:
    168
    Симпатии:
    2
    <!--QuoteBegin-sax_ol+18:10:2007, 11:36 -->
    <span class="vbquote">(sax_ol @ 18:10:2007, 11:36 )</span><!--QuoteEBegin-->ну что вам сказать ... все в C# есть и указатели и неуказатели
    [snapback]82219" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Странно, а я прочитал гдето что в C# нет указателей, или это чтото другое?
    <!--QuoteBegin-sax_ol+18:10:2007, 11:36 -->
    <span class="vbquote">(sax_ol @ 18:10:2007, 11:36 )</span><!--QuoteEBegin-->чес слово непонимаю вашего такого интереса
    [snapback]82219" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Я же говорю, не хочу зря учить, вдруг не мое, сначала узнаю о нем у людей побольше, а потом уже решу, учить мне его или оставить.
    А как он на ваш взгляд по сравнению с C++?
    Дело в том что я свободно пишу на VB (конечно не ас но зарабатываю) и испытываю любовь к C++ (сам язык) но он на стадии изучения, программы на нем писать долго. Так вот мне еще хотелось бы иметь возможность писать на С++ с такой же простотой как и на VB (пускай быстродействие пострадает, но зато программа будет готова к нужному сроку (относительно)) только вот чтото не нравится мне что пишут что указателей там нету. И вот хочу знать соответствует ли C# таким желаниям.
     
  10. Pasha

    Pasha Гость

    Для: Normann
    В C# есть указатели, System.IntPtr и System.UIntPtr.
    Все типы разделяются на Value Types (структуры и простые типы) и Reference Types (классы). Переменная Reference Type - это прямой аналог указателя из C++, за исключением арифметики. Т.е. "указатель на переменную типа MyClass" это то же, что "переменная типа MyClass". Вобщем, рассказывать бессмыссленно, попробуй написать что-нибудь мелкое на C#.
    Да, кстати, быстродействие программ от использования .net не страдает.
     
  11. Normann

    Normann Well-Known Member

    Регистрация:
    9 авг 2007
    Сообщения:
    168
    Симпатии:
    2
    Благодарю, значит возьмусь за C# в ближайшее свободное время.
     
  12. Your_Princess

    Your_Princess Гость

    Что за него браться? Если знаешь С++ - это дело 1 - 2 вечеров. Синтаксис почти такой же. А всё остальное приходит по ходу разработки.
     
Загрузка...

Поделиться этой страницей