Уважаемые участники портала.
Приглашаем вас в увлекательное путешествие по миру програмирования на языке С#.
Справка:С# - произносится как Си шарп - объектно-ориентированный язык программирования для платформы .NET
Создан компанией Microsoft для поддержки среды .NET Framework.
Его главным архитектором был ведущий специалист в этой области — Андерс Хейлсберг.
С# -— прямой потомок двух самых успешных в мире компьютерных языков: С и C++.
От С он унаследовал синтаксис, ключевые слова и операторы. Он позволяет постро-
ить и усовершенствовать объектную модель, определенную в C++. Кроме того, С#
близко связан с другим очень успешным языком: Java. Имея общее происхождение,
но различаясь во многих важных аспектах, С# и Java — это скорее "двоюродные братья".
Например, они оба поддерживают программирование распределенных систем и оба используют промежуточный код для достижения переносимости, но различаются
при этом в деталях реализации. Си шарп обладает огромными возможностями благодаря использованию не имеющей себе равных библиотеке классов среды .NET Framework(более 80 простанств имен)
Суммируя вышеизложенное процитируем одного из главных популяризаторов языка Герберта Шмидта
"Это — язык, игнорировать существование которого не может ни один профессиональный программист."
И мы тоже как умные люди не будем его игнорировать.
Итак. В этом топике мы будем учиться программировать на этом интереснейшем языке.
Здесь мы будем выкладывать примеры своих работ и исходники кодов.
Здесь мы будем задавать животрепещущие вопросы.
Здесь мы будем общаться и делиться опытом.
И еще здесь мы не будем флудить и засорять тему не имеющими к ней отношения постами.
Посты флудеров будут удаляться, а сами "чоткие сталкеры" отправляться в бан.
Простые правила соблюдать которые не составит труда: 1. Не флудить и соблюдать корректность в общении.
2. Если можете квалифицированно ответить на заданый вопрос - ответьте.
3. Делитесь тем что наработали и новыми знаниями.
И наконец последнее - рассказывайте о топике всем своим знакомым. Чем больше будет тех, кто желает узнать этот язык, тем лучше будет для всех.
Если вы хотите быть не только обычными пользователем программ, но также их творцами - вам сюда.
Вы удивитесь узнав какие возможности откроет перед вами программирование на этом современном языке: создание собственных интерфейсов программ и рисование, 2D и 3D анимация, работа с аудио и видео контентом и многое многое другое...
Присоединяйтесь.
Удачи всем!
ссылка на статью из википедии
_http://ru.wikipedia.org/wiki/C_Sharp
ссылка на учебники по С#
_http://bookwebmaster.narod.ru/csharp.html
руководство по языку
_http://msdn.microsoft.com/ru-ru/library/67ef8sbd.aspx
Ссыдка на установку платформы "Microsoft Visual C# 2008 экспресс-выпуск"
_http://www.microsoft.com/rus/express/download/
отредактировал(а) singapur22: 03-03-2010 19:22 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
А теперь прошу от маэстро пару советов по правильной компиляции кода в Microsoft Visual C#.
Какие пункты в меню Проект->свойства обязательны для заполнения - а какие можно оставить как есть.
Особенно меня интересует такая вещь - как компиляция в проект сторонних ресурсов - где их вписывать и надо ли менять путь до них в коде.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Попробую пояснить, как запихать внешние ресурсы (изо, медиа, и т.д.) в файл приложения.
Итак. При создании любого проекта в обозревателе решений создаётся папка Properties . Которая содержит все ресурсы добавленные из-вне.
Чтобы добавить в него ресурс, открываем Properties /Resources.resx. В открывшемся редакторе ресурсов выбираем "Добавить ресурс", только нажимаем не на саму кнопку, а на чёрную стрелочку находящуюся рядом с кнопкой, откроется контекстное меню, где выбираем "Добавить существующий файл". Далее без комментариев...
Теперь, разберёмся, как использовать добавленные ресурсы в проект. Ресурсы вызываются из файла Resources.Designer.cs. Вызов производится по пути нахождения данного ресурса в указанном файле. Например:
У меня несколько "общих вопросов" любого новичка. Или не очень.
Что вообще конкретно разрабатывается на данном языке (если можно, то хотя бы пару простых примеров)?
Можно ли на нём создать простейшее окно в Windows просто для какой-нибудь надписи (ярлык на рабочем столе, жмёшь, вылезает окно с содержимым)?
И в чём отличия между С#, С++, тем же Delphi, или Turbo Pascal? В сложности работы, или в результате? Просто давно хотел начать какой-нибудь язык осваивать, недавно в книжном был, хотел учебник чтоль какой купить, и когда увидел обилие языков программирования прям в ступор встал :)
Множество людей верит в Бога, но не много таких, которым верит Бог. (с)
Michael Jackson 1958-2009 He live in our hearts forever...
добавил файл - теперь у меня и сама папочка Resources появилась.
но у меня ссылка на сам файл в коде стоит в таком виде
это метод вроде из класса Image пространства имен System.Windows.Controls;(или не отсюда - уже не помню)
там как я понял по другому ресурсы добавляются - в общем надо будет заново тему по ресурсам перечитать.
добавлено спустя 2 минут
o_OKO
я бы тебе сейчас готовый примерчик выложил - если бы проект скомпилить правильно мог. :-)
как раз интерфейс делал - и анимации интерфейса.
отредактировал(а) erlik: 03-03-2010 18:17 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
o_OKO C# является самым молодым и в тоже время самым современным языком, который взял из более старшего поколения самое лучшее. Ну и естественно, имеет и свои наработки. Язык C# имеет довольно широкий круг применения, как уже говорилось от самых простых приложений, типа текстовых редакторов, до наисложнейших проектов, типа игр ААА класса. Прямой пример, движёк XNA созданный на данном языке самими майкрософтовцами.
Вот ещё один пример. Миниприложение созданное мной на третий день изучения языка:
_http://ifolder.ru/16590192
Требуется пакет .NET Framework
Если у тебя на компе его нет, то твой комп таковым не является. В наше время это обязательный компонент современного компьютера.
добавлено спустя 9 минут
erlik С этим я сам както не в ладах. Например, если в .cs для ImageSource можно указать путь Uri, с установкой точки пути, от которой можно плясать,(например относительно папки bin, или от папки проекта), то в .xaml нет такой возможности. Хотя может я и не прав, может и есть, но вот как это сделать, я как не пытался найти, ничего так и не добился.
отредактировал(а) singapur22: 03-03-2010 18:39 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
да проблемс - читаю сейчас всю тему "Ресурсы, содержимое и файлы данных для приложений Windows Presentation Foundation " и пока не нашел ни одного понятного примера для моего случая.
А при другом варианте - когда как ты говоришь есть возможность задать путь в cs - придется создавать компонент использующий ресурс уже в программном коде. Попробую перенести элемент из haml в cs.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Есть ещё такой прикол. Вместо пути к ресурсу на компе, можно указать URL адрес к компоненту находящемуся в инэте. Результат будет ошеломляющий. Естественно требуется подключение к инэту. ;-)
Это даёт возможность обмена приложениями не вкладывая в них ресурсы. Ресурцы можно сохранять в инэте ввиде отредактированных файлов. Например изображения можно сохранить на любом хостинге изображений и в приложении указывать уже не сам ресурс, а URL адрес его нахождения на хостинге.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
тоже вариант - может и мне тогда также сделать. Залью картинку на ифолдер - укажу путь.
o_OKO
вот скрин компонентов интерфейса которые можно сделать в C# за несколько дней.
я их еще и анимировал. Но это только при запуске экзешника видно будет.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik На ifolder не получится, там нужно код вводить, что прога сама не сделает. Просто отобрази картинку в инете (как ты делаешь для вставки изо в портале) и скопируй на неё путь через контекстное меню, и вставь путь в приложение.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22 это я понял.
я на радикал залил - только картинка в проге не отображается.
пробовал два разных урла вводить.
видимо я че то уже изменил что теперь такой вариант не катит - я в общем в свойствах картинки (в папке ресурсес) указал всегда копировать в выходной каталог. Сам не знаю - а надо ли это вообще :-)
добавлено спустя 14 минут
у меня теперь последний по дате создания экшеник в папке дебаг весит 356 кб - то есть практически столько сколько должен весить с картинкой (картинка 300 кб). может она теперь туда компилируется?
и этот экшеник будет запускаться на другом компе? Или все таки надо компилить по всем пунктам в меню?
отредактировал(а) erlik: 03-03-2010 19:44 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Вот пример установки URL вместо Pa**50016ea8aab1bb10eeba**Model3D.Material>[/code]
При установке, "добавлять в выходной каталог", каждый добавленный элемент в ресурсы будет дублироваться в папку Resources. Это делается чисто для дополнительного сохранения ресурса (в проге не используется).
В папке Debag, сохраняется тестовый вариант приложения. Чтобы скомпилить релизовый вариант (папка Release), нужно прокликать по такому пути:
Построение/Построить решение
Или через нажатие F6.
Если прога содержит внешние ресурсы, то построенное решение не будет фурычить на других компах, так как указанные пути не будут соответствовать действительности. Для этого производится действие "Опубликовать проект", которое производит создание файла установки приложения. Но если все ресурсы скомпилены в саммом приложении, то опубликование не требуется.
Кстати, мне произвести опубликацию так и не удалось. Выдаёт ошибку:
Ошибка 2 ошибка при подписании: Не удалось подписать bin\Release\app.publish\\setup.exe. SignTool Error: Signtool requires CAPICOM version 2.1.0.1 or higher. Please
copy the latest version of CAPICOM.dll into the directory that contains
SignTool.exe. If CAPICOM.dll exists, you may not have proper
permissions to install CAPICOM. WpfApplication1
Кароче требует CAPICOM.dll Надо попробывать скачать (в инэте есть всеразличные варианты файла). Вот только куда его пихать, хрен его знает.
Скачал с майкрософта. Установил (производится автоматическая установка). Но результата ноль. Видимо чтото упускаю. Но что?
отредактировал(а) singapur22: 03-03-2010 20:26 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
в твоем варианте все отобразилось - однако когда я решил снова проверить свой - а потом обратно твой - опять ничего. Странно...
проверь у себя - это отображается?
http://s005.radikal.ru/i212/1003/ae/12234b44f93a.jpg
добавлено спустя 6 минут
я только что сделал публикацию - ничего не требовал - в папке publish получился файл setup и папочка Application Files с какими то еще файлами - сетапник 600 кб.
отредактировал(а) erlik: 03-03-2010 20:38 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Отобразилась. Но не сразу. Тоесть, сначала как обычно, долгая загрузка приложения (из-за загрузки компонента с инэта), затем открывается приложение, но вместо изо отображается пустой фон, но немного погодя появляется картинка. Думаю это из-за формата в котором оно у тебя сохранено. Сконверти его или в gif или в png. Лучше в png (более качественная картинка).
Насчёт опубликации. Отключил подписывание, и данную dll больше не требует. Создание производится, но при запуске установщика происходит вылет с ошибкой, типа не могу найти некоторые ресурсы. Может это из-за того, что использованы внешние компоненты, которые даже не добавлены в список ресурсов. Надо проанализировать.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
точно спустя какое время она все таки появляется :-)
слушай а мой сетапник будет рабочий?
может залить его на айфолдер - а ты проверишь? ну пусть не сейчас - позже как время будет а то интересно как там вообще все скопилилось...у меня там путь был указан инетовский.
но ведь по ходу картинка все таки скомипилировалась внутрь проекта...
ничего пока не понимаю в этой компиляции - столько файлов непонятных появляется.
добавлено спустя 3 минут
у меня сетапник сработал - запуск приложения был автоматический.
добавлено спустя 7 минут
вот залил
http://ifolder.ru/16676530
глянь пожалуйста - картинка все таки требует инета как я понял.
а если бы я оставил старый путь до директории на компе тогда что было бы?
Спасибо за проверку.
а ты функции редактирования какие там настроил?
отредактировал(а) erlik: 03-03-2010 21:28 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Установилась и работает.
У меня тоже есть результат. Создал простой текстовый редактор, и опубликация прошла успешно.
А вот моё 3D приложение пока никак не поддаётся опубликации. Наверно всётаки из-за внешних ссылок. Надо чтото с ними решать.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
надо бы разобрать два маленьких класса.
CommandBinding и InputBinding - первый биндит команды виндоус к компоненту управления, второй биндит сочетания клавиш к командам. Классы маленькие и изучать там особо нечего - но потребност
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
да прежде всего просто разобраться в алгоритме привязки команд.
в данном случае у меня есть меню - команды копировать, вставить, вырезать - работают сами по себе для целевого объекта текст бокс- хотел попробовать сделать привязку команды открыть файл (сам не знаю какой объекту надо делать целевым - то ли меню то ли бокс ) сама команда открыть в меню есть - но не работает - надо делать биндинг и логику выполнения.
а как все это сделать не могу сообразить. я этим еще неделю назад занимался - но тогда решил на потом оставить - вчера попробовал опять сделать и снова ничего не вышло.
ЗЫ: Щас скачаем:-)
добавлено спустя 10 минут
вот смотри - вот эти команды в моем меню работают без биндинга и логики для текст бокса если он в фокусе клавы
а я хочу еще и эти настроить
добавлено спустя 19 минут
Поигрался. Слушай классно - мне понравилось :-cool)
надо будет тоже начинать учиться 3D.
отредактировал(а) erlik: 04-03-2010 13:53 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Ну, для начала нужно создать окно "OpenFile", которое будет открываться при нажатии на итем "Открыть файл". Привязать
отредактировал(а) singapur22: 04-03-2010 14:41 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
я вот и думал - окно открытия само появится или нет.
Получается его надо создавать. но такого окна в контролс нет.
В System.Windows.Forms и System.Windows.Controls очень много похожих или практически идентичных по названию элементов, но методы разные - и каждый работает только для своего пространства имен.
я вот в своем проекте методы из Forms не могу использовать.
даже обработчики нажатия кнопки и то разные.
про Name и x:Name я знаю - уже использовал.
А для остальных команд - сохранить, распечатать и прочее - тоже что ли получается нужны свои окна?
(Диалоговое окно печати в контролс есть)
Исходники: да выкладывай - посмотрю с большим интересом.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Ты просмотри любой текстовый редактор в действии. Где и когда, какие окна использу
отредактировал(а) singapur22: 04-03-2010 15:48 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
сложновато пока для моего понимания - но будем разбираться.
окно настройки параметров печати вызвалось без проблем через создание его экземпляра в коде
PrintDialog pDialog = new PrintDialog();
однако там тоже много чего непонятного и для полной настройки нужно подключать какие еще доп пространства имен.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik А чё ты говоришь, что формы в Wpf не рабо**50016ea8aab1bb10eeba**OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog();
ofd.ShowDialog();[/code]
отредактировал(а) singapur22: 04-03-2010 16:00 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
System.Windows.Forms.OpenFileDialog OpenDialog = new System.Windows.Forms.OpenFileDialog();
OpenDialog.ShowDialog();
}
}
}
но у меня подчеркивается Form и требует директиву using на сборку -но как я уже тебе говорил - когда эту сборку расскоментариваю вверху файла - у меня сразу весь код подчеркивается красным из-за неоднозначных ссылок между этими двумя namespace .
ими лучше пользоваться раздельно - иначе очень неудобно получается.
код у меня в cs на 400 строк - и править весь как то не хочется.
добавлено спустя 21 минут
перенес указание на сборку внутрь namespace
namespace MyForms
{
using System.Windows.Forms;
только теперь ругается на сам обработчик but7_Click типа "WpfApplication2.Window1" не содержит для него определения. :dry:
добавлено спустя 22 минут
singapur22
спасибо за исходники скачал - буду разбираться.
А теперь насчет открыть файл - в общем сделал я и без неймспейс нового и даже без раскоментаривания сборки - стоило только поменять private void на public void в обработчике и все заработало :-)
нда синтаксис мне еще учить и учить...
за доп. коллбеки спасибо - буду разбираться - не встречал еще таких.
отредактировал(а) erlik: 04-03-2010 17:09 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Ну во первых, как я уже выяснил Form создавать не нужно. Во вторых, если всётаки решил пойти по этому пути, то в using никаких ссылок задавать не нужно. Пропиши вместо Form полный путь к классу:
...
public partial class Form1 : Sy**50016ea8aab1bb10eeba**
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
есть две проблемы: как сделать чтобы выбранный в окне файл (любой файл) открывался на коллбек выбора FileOk в поле текст бокса.
Я имею ввиду есть ли простой метод для того чтобы содержимое файла открывалось именно там. Или надо использовать методы IO открытия и чтения файлов и как то копировать содержимое выбранного файла в текст бокс?
И второе - без биндинга нельзя сделать команду открыть файл активной в меню. Я пока через Клик кнопки вызывал окно Открыть. Тот же клик в меню ничего не дает - строчка открыть остается неактивной.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.