Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C#, С чего начать? 
:(
    Опции темы
Kakadu
Дата 26.6.2008, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 19.3.2008

Репутация: нет
Всего: 7



Вот я несколько прижился к Delphi (хотя на ВС++В тоже самое вполне могу сворганить), но вот препод в универе сказал что со следующего года будет С#. Уж даже задачку на лето задал - мы там писали программу-словарь в динамической памяти (с указателями... эээ... ну вы поняли  smile ) и теперь надо это всё переписать на шарп. Дык только вот одна проблема: я слыхивал слухи, что там такой штуки как указатели нет, т.е. вот такое вот дерево не прокатит:
Код

type
  TPItemDic = ^TItemDic;
  TItemDic = record
     lr,rr,le,re : TPItemDic;
     rus, eng: string;
     tag : boolean;
  end;


По мере пролистывания первой попавшийся книжке по шарпу, я начал думать что слухи на пустом месте не рождаются, и указателей там как и в Java нет. Зато вычитал про базы данных, но мне показалось что такую простую программу -- построение дерева путем чтения элементов из файла - перегружать базами данных будет некоторым извращением....

Собственно возникли вопросы:
1) Что я должен изменить в мышлении чтобы начать ворганить на шарпе?
2) Как конкретно реализовать что мне надо?



--------------------
Добрые мариносы долго кормили украдкой маленьких зерлингов. От этой украдки зерлинги пухли и дохли
PM MAIL   Вверх
Дрон
Дата 27.6.2008, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 24
Всего: 92



Цитата(Kakadu @  26.6.2008,  19:51 Найти цитируемый пост)
и указателей там как и в Java нет

Очень просто. Указатели там всё-таки есть и даже очень много: практически все переменные на самом деле и есть указатели smile
Код
class ItemDic
{
     ItemDic lr, rr, le, re;
     string rus, eng;
     bool tag;
}

И все довольны smile


--------------------
Да. Именно так.
PM   Вверх
Kakadu
Дата 27.6.2008, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 19.3.2008

Репутация: нет
Всего: 7



Дрон, вы сказали не совсем то, что я хотел услышать. Получается что в Шарпе всё отличие в работе с указателями заключается в том что в иных языках нет автоматического сборщика мусора, а тут есть? Т.е. существуют прямые аналоги кода типа
Код

int a=5;
int* b= &a;     // надеюсь не наврал
?

Не понятно как все переменные могут на самом деле быть указателями - шарп же вроде сильно типизированный язык?

P.S. Пойду создам тему "построение цепного списка на С#"


--------------------
Добрые мариносы долго кормили украдкой маленьких зерлингов. От этой украдки зерлинги пухли и дохли
PM MAIL   Вверх
PashaPash
Дата 27.6.2008, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



Kakadu, в .net переменные - не указатели (pointers), а ссылки (reference). В C++ ссылки тоже строго типизированы.


--------------------
PM MAIL WWW   Вверх
Дрон
Дата 27.6.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 24
Всего: 92



Цитата(Kakadu @  27.6.2008,  14:37 Найти цитируемый пост)
Т.е. существуют прямые аналоги кода типа

Такого нет. Как правильно сказал PashaPash -- в C# переменные это ссылки на объекты. Ты не можешь явно узнать адрес объекта используя операцию &, как в Си, но неявно в большинстве случаев переменная именно адрес и хранит. Исключение составляют структуры (struct, к ним относятся и примитивные численные типы int, double и т.п.) -- они хранятся как значение, а не ссылка.

То есть если ты напишешь:
Код
class MyClass
{
     public int Val;
}

public static void Main()
{
     MyClass a = new MyClass();
     MyClass b = a;
     b.Val = 5;
     Console.WriteLine(a.Val);
}

то b и a буду ссылаться на один и тот же объект и в результате на экране ты увидишь 5.
Аналог вышеприведённого кода на С++ такой:
Код
class MyClass
{
   public:
       int Val;
};

void main()
{
      MyClass* a = new MyClass();
      MyClass* b = a;
      b->Val = 5;
      cout >> a->Val; // ну или как там сейчас принято в консоль печатать?
}


Соответственно, я не очень понял, чем тебя не устраивает мой ответ smile

Это сообщение отредактировал(а) Дрон - 27.6.2008, 16:06


--------------------
Да. Именно так.
PM   Вверх
Kakadu
Дата 27.6.2008, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 19.3.2008

Репутация: нет
Всего: 7



О, спасибо! Так намного лучше. Осталось понять чем отличаются ссылки от указателей, чтобы всё было тип-топ.


--------------------
Добрые мариносы долго кормили украдкой маленьких зерлингов. От этой украдки зерлинги пухли и дохли
PM MAIL   Вверх
DimonSE
Дата 29.6.2008, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 29.6.2008
Где: Харьков, Украина

Репутация: нет
Всего: нет



Цитата

По мере пролистывания первой попавшийся книжке по шарпу, я начал думать что слухи на пустом месте не рождаются, и указателей там как и в Java нет. Зато вычитал про базы данных, но мне показалось что такую простую программу -- построение дерева путем чтения элементов из файла - перегружать базами данных будет некоторым извращением....


В .NET Framework на котором держиться C# есть масса готовых классов по работе с массивами, списками, словарями, деревьями. Так что извращатся действительно не прийдеться, все уже написано за тебя и отлажено. Найди в книге раздел где описывают работу с этими классами и ты поймешь, что твоя задача решается за день-два на Шарпе smile 

 PS: Но помни главное правило IT-шника. прикинул за сколько ты решишь эту задачу, умножай на 2 и переводи в следующую единицу времени smile 

Это сообщение отредактировал(а) DimonSE - 29.6.2008, 19:10
PM MAIL   Вверх
ДобренькийПапаша
Дата 29.7.2008, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Я вот дочитал счас Троелсена до ВиндоузФорм, дальше пока не пойду, закреплю материал пройденный по другому мануалу с домашними заданиями, тобишь самому проги кое-какие катать, закреплю пройденный материал, дальше Троелсена буду учить..., имхо, прежде чем переходить к визуалке нуня синтаксис, различные конструкции, типовые решения мелких проблемок закрепить в голове...


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
wiggum
Дата 4.11.2008, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 4.11.2008

Репутация: нет
Всего: нет



решил изучать и не могу выбрать, один из двух курсов: Введение в программирование на C# 2.0 или Основы программирования на C#
подскажите мне на чем остановить выбор?
PM MAIL   Вверх
Bogdan1024
Дата 4.11.2008, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 5
Всего: 13



Первую ссылку. Вторая по .нету первому - нафиг надо? Хотя лучше врубайся сразу в .NET 3.5.


--------------------
user posted image
PM MAIL   Вверх
QryStaL
Дата 4.11.2008, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Bogdan1024, почему не сразу в 4.0 ?  smile 

Для начинающего Троэлсена даже по 1.1 хватит с головой. Иначе его var-ами и лямбдами только запутаешь.


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
Bogdan1024
Дата 5.11.2008, 00:17 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 5
Всего: 13



Цитата(QryStaL @  4.11.2008,  22:49 Найти цитируемый пост)
Bogdan1024, почему не сразу в 4.0 ?

Патамуша я так захотэл smile


--------------------
user posted image
PM MAIL   Вверх
wiggum
Дата 5.11.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 4.11.2008

Репутация: нет
Всего: нет



Цитата
2 Bogdan1024

спс! smile хотел "+" дать, а мне: не могешь,нету 100постов!

А,теперь по делу: подскажите, где внятно, просто и в полной мере разжевано,  : что такое "классы,обьекты и типы"
просто не хочу дальше идти, пока не пойму, что это такое(это мое имхо)! или я не прав? smile 
PM MAIL   Вверх
ivashkanet
Дата 5.11.2008, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



wiggum, в "Основы программирования на C#" (я с нее начинал свой C# путь) отлично про это все рассказывается. Про 2,0 не в курсе. Да и автор там другой.
PM MAIL WWW ICQ   Вверх
archeg
Дата 5.11.2008, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 11
Всего: 27



Цитата(wiggum @ 5.11.2008,  13:39)
Цитата
2 Bogdan1024

спс! smile хотел "+" дать, а мне: не могешь,нету 100постов!

А,теперь по делу: подскажите, где внятно, просто и в полной мере разжевано,  : что такое "классы,обьекты и типы"
просто не хочу дальше идти, пока не пойму, что это такое(это мое имхо)! или я не прав? smile

Конечно прав, без этого никуда. Я бы начал изучение шарпа с Троелсона - наиболее популярный и довольно простой автор. Но как раз основы ООП лучше читать с чего-то другого. Скорее всего какие-то книги по С++ (там много авторов, которые очень доходчиво объясняют все это)


--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1014 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.