Змінюй хід війни! Допомагай ЗСУ!

C# не легкая это работа....

  • Автор теми Автор теми sergiy2001
  • Дата створення Дата створення
спасибо за пожелание успеха, но не отказался бы чтобы в пожеланиях было по больше конструктива.
 
Вкажно,как тут интересно.
 
Останнє редагування:
Любезный ТС,относитесь к классам попроще,например как к сложной переменной типа структура.Методы класса это всего лишь обычные функции, которые можно использовать в программе,включив описание класса ,как часто бывает по заголовочному файлу,то есть это свойства класса, приписанные ему характеристики.Обьекты класса,это конкретно проинициализированная по конструктору класса структура типа класса,и после этого вы вправе через нее пользоваться всеми полями и методами класса.
Описывая собственный класс с полями и методами и обьявляя его как производный от другого,вы в пользование дополнительно к вашим получаете все поля и методы
другого класса. При этом имена одинаковых полей и методов если таковые имеются
получат переопределение в описанные вашим классом..Можно умышленно их переопределить под ваши нужды. Описывая одну и туже функцию с разными параметрами,будучи вызывая ее с определенными параметрами,компилятор вставит нужный вызов.Возможность перегрузки операций дает вам возможность их применения по своему усмотрению.
И так вы кратко готовы,к тому,чтобы занять ведущее место среди программистов великой державы Украины.
Пользуясь случаем,в дальнейшем я изложу механизм позднего связывания и выделения областей памяти в динамике работы процесса.

как не странно но я это понял, если где-то ошибаюсь подправте. Методы и поля класса - это то из чего состоит сам класс.
Класс это еще не есть сам объект, но на базе класса с помощью команды new мы его создаем в оперативной памяти.
Конструктор, имя которого совпадает с именем класса, выполняет инициализацию полей, присваивая им значения, по умолчанию, это ноль.
объявление собственного класса на базе существующего это ни что иное нак наследование выполняется с помощью команды :
на счет переопределения одинаковых методов или полей в производном классе не совсем понял... Насколько мне известно если в производном классе есть одноименные поля или методы то происходит так называемое маскирование метода или поля класса, чтобы этого не происходило необходимо использовать ключевое слово new.
Описывая одну и туже функцию с разными параметрами,будучи вызывая ее с определенными параметрами,компилятор вставит нужный вызов - вот это ни что иное как перегрузка методов.
Подправте если где то ошибся. Тыемураз огромное тебе человеческое спасибо. Ставлю тебе + в репутацию
 
Блин, чувак, я прочитал всего один раз то что ты написал и теперь сам не понимаю что такое класс. Как же я теперь работать буду :confused:
да уж Тыемураз нагородил - не объедешь. Еще и массой ошибок. Если ТС ТАКОЕ! понял...
Зачем изобретать велосипед, если есть профессионалы, доступно и понятно все излагающие? Хотя почитать в таком "исполнении" про позднее связывание и выделение памяти будет занятно.
Для ТС - если читаешь по-английски, то тут масса литературы:
netbks.com. Там главное не потеряться :). Если в английском слабоват, что надо срочно исправить, то "сюда ходи":
Посилання видалено
Посилання видалено
Посилання видалено
Будет мало - свистни, кину еще ссылок.
 
на английском читаю но не так шустро как на русском. Постараюсь общие понятия и азы освоить на русском, а что то по конкретнее уже планирую читать на инглише.
О позднем связывании еще ничего не читал, обязательно обращу внимание на этот раздел.
Но это теория, не понимаю как перейти к практике...
Изучаемые мною примеры всегда начиналось с объявления класса в котором объявлялись все поля и методы. при таком подходе я по названиям методов понимал что он выполняет.
в реальности же, как я понимаю, существует десятки тысяч классов, созданных майкрософт и не только и как мне определить существует ли например такой метод как, например, рисование линии и если существует (а я уверен что существует) то как он называется, чтобы я мог его вызвать, и в каком классе он живет, где мне его искать и какие исходные данные я должен ввести чтобы линия построялась...
и вообще существует класс system как понять что в нем хранится, вот я знаю что там есть метод writeline и readline, но ведь это капля в море. Заранее благодарю всех кто ответит на мой, может даже глупый, но вопрос.

kost спасибо!
интуитовский курс пробовал - чувствую, как в том выражении:" Смотрю в книгу а вижу фигу". Тоже самое и с Тролсеном.
Ухватился за Фролова, потому как там изложено на доступном для меня языке. и вчера скачал на русском С шарп для чайников.
в книжке для чайников уже прочитал 90 страниц но пока вода водой как то даже слабовато - надеюсь еще не дошел до сложного.
там много инфы выкладывается о типах данных int string bool
потом операторы цикла if do while
но это я помню еще со школы когда учил бейсик, но то было не объктно-ориентированное программирование. там строки нумеровались и выполнялись поочередно, а чтобы перепрыгнуть по программе использовались операторы условного и безусловного перехода.
ну вообщем так... Продолжаю изучать С шарп....
 
Как все таки жить хорошо.
 
Останнє редагування:
в реальности же, как я понимаю, существует десятки тысяч классов, созданных майкрософт и не только и как мне определить существует ли например такой метод как, например, рисование линии и если существует (а я уверен что существует) то как он называется, чтобы я мог его вызвать, и в каком классе он живет, где мне его искать и какие исходные данные я должен ввести чтобы линия построялась...
Ну так для этого существует автокомплит, основанный на рефлексии, кагбэ.
и вообще существует класс system как понять что в нем хранится, вот я знаю что там есть метод writeline и readline, но ведь это капля в море. Заранее благодарю всех кто ответит на мой, может даже глупый, но вопрос.
Почему бы не заюзать Reflector.Net?
 
хм... нипанятна.... почему пропали сообщения.....
 
Я вот тоже учу C# с нуля. Хотя есть большой опыт программирования 8-битных микроконтроллеров на С (а ренее и на ассемблере). Вобщем сам язык простой для изучения (если с асм-мом сравнивать). Придумали страшных слов: всякие там полуморфизмы, инкакбэляцию и т.п. шобы народ отпугивать, а на деле то всё просто :D
Сложность то совсем в другом (как для меня): количество всех свойств и методов, начиная от тех что у базовых типов, и заканчивая х.з. даже где :eek: Вот как это всё упомнить и эффективно применять? Да чтобы только бегло ознакомиться уходит уйма времени, а свои методы писать то глупо если есть готовые... а как узнать?

Ладно, всё то лирика была, а вот чайновский вопрос:
а почему когда закрываеш форму крестиком, не вызывается деконструктор который я ей написал?
 
Придумали страшных слов: всякие там полуморфизмы, инкакбэляцию и т.п. шобы народ отпугивать
причем придумали очень давно и совсем не для C#.

а на деле то всё просто :D
самое сложное в ИТ - найти простые решения.
хотя бы простые с точки зрения пользователя.
а Вам видно хочется, чтоб все было через ****?

Вот как это всё упомнить и эффективно применять?
а документацию и поиск по ней отменили?

а почему когда закрываеш форму крестиком, не вызывается деконструктор который я ей написал?
потому что деструктор вызывается сборщиком мусора,
когда ему приспичит и если больше нет ссылок на объект.
это даже я, ни разу не программировавший под .NET, знаю.
 
Останнє редагування:
а почему когда закрываеш форму крестиком, не вызывается деконструктор который я ей написал?

как изобретательно - изобрел "деконструктор" обозвав так изобретенный деструктор в шарпе :)

при закрытии формы вызывается dispose - туда и пиши
 
самое сложное в ИТ - найти простые решения.
хотя бы простые с точки зрения пользователя.
а Вам видно хочется, чтоб все было через ****?
Имелось ввиду другое. Когда читал во вступтельных главах про определения ООП - казалось что всё будет сложно и через ж. Когда дошло до реального описания как это всё работает с примерами... Ну понятно, придумали фишку удобную - так надо ж её обозвать и определение ей дать пострашнее и позаумнее.
а документацию и поиск по ней отменили?
Нет, а что? Тут вопрос не в недоступности инфы.
потому что деструктор вызывается сборщиком мусора,
когда ему приспичит и если больше нет ссылок на объект.
это даже я, ни разу не программировавший под NET, знаю.
Это знаю и я. Но это не срабатывает. Если вы не разбираетесь в вопросе зачем писать?

2 Hisp
Да, деструктор - все и так поняли :)
Спасибо за dispose, но вопрос звучал: ПОЧЕМУ не срабатывает деструктор формы? Какого нюанса я не знаю?
 
а почему когда закрываеш форму крестиком, не вызывается деконструктор который я ей написал?

ни деконструкторов, ни деструкторов в C# нет. Потому и не вызывается ;)

ПОЧЕМУ не срабатывает деструктор формы?

потому что в языке C# нет деструкторов

Какого нюанса я не знаю?

ты не заешь того что в C# нету деструкторов ;)
 
Имелось ввиду другое. Когда читал во вступтельных главах про определения ООП - казалось что всё будет сложно и через ж. Когда дошло до реального описания как это всё работает с примерами... Ну понятно, придумали фишку удобную - так надо ж её обозвать и определение ей дать пострашнее и позаумнее.
критикуя - предлагай (В.И. Ленин)
есть предложения более подходящих терминов, чем инкапсуляция/наследование/полиморфизм? )))
 
ни деконструкторов, ни деструкторов в C# нет. Потому и не вызывается ;)

потому что в языке C# нет деструкторов
ты не заешь того что в C# нету деструкторов ;)
да ты чтоооо???? Вот незнал.... :confused:
А в книгах почему-то написано что есть.
См. "C# Учебный.Курс" Шильд
См. "C# в подлиннике. Наиболее полное руководство" Х.Дейтел

dr_mousefly сказав(ла):
критикуя - предлагай (В.И. Ленин)
есть предложения более подходящих терминов, чем инкапсуляция/наследование/полиморфизм? )))
Не не не! Мало ли что считал тов. Ленин? Он нынче не в авторитете! Я сказал что определения терминов слишком запутанны, термины пусть будут.
 
Деструкторов нет, есть финализаторы ну и как альтернатива метод Dispose (для классов которые насл. интерефейс IDisposable). Это отменно описано в Рихтере. Топик называемся кажись "освобождение неуправляемых ресоурсов" или чето в этом роде. Вообще при закрытии формы методом Close() происходит ее уничтожение (в том числе и ресурсов принадлежащих ей). Так что мона прямо в обработчике Close позакрывать все файлы и соединения с БД, ну, грубо говоря, скопируй все что ты написал в деструкторе в метод Form_Close(). А если неуправляемых ресурсов на форме нет, то нафиг вообще про это париться, сборщик мусора все очистит.
 
ну ооооочень запутанные определения..

Инкапсуля́ция — свойство языка программирования, позволяющее объединить данные и код в объект и скрыть реализацию объекта от пользователя. При этом пользователю предоставляется только спецификация (интерфейс) объекта. Пользователь может взаимодействовать с объектом только через этот интерфейс.
Полиморфи́зм (в языках программирования) — взаимозаменяемость объектов с одинаковым интерфейсом.
 
Назад
Зверху Знизу