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

Normann

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

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

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

alexBlack

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

LuMee

Well-Known Member
02.05.2006
477
0
#3
Писать нужно не на языке, а с использованием языка.
+1

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

Normann

Well-Known Member
09.08.2007
168
2
#4
<!--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#.
 

LuMee

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

Normann

Well-Known Member
09.08.2007
168
2
#6
Большое спасибо.
Может кто нибудь еще поделится впечатлениями.
 
P

Pasha

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

Normann

Well-Known Member
09.08.2007
168
2
#8
Для: sax_ol и Для: Pasha
А как вам без указателей?

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

Normann

Well-Known Member
09.08.2007
168
2
#9
<!--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# таким желаниям.
 
P

Pasha

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

Normann

Well-Known Member
09.08.2007
168
2
#11
Благодарю, значит возьмусь за C# в ближайшее свободное время.
 
Y

Your_Princess

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