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

Статус: Offline
Реєстрація: 15.04.2007
Повідом.: 2188
C# не легкая это работа....

Вторую неделю читаю книжку по C#, изучаю базовые вещи, класс, поля классов, инкапсуляция, полиформизм, перегруженные методы, наследование...
опыта программирования нет, так в школе баловался на бейскике, а то что касается объектно-ориентированного, то вообще никак. Вообщем как то так туго идет обучение, что начинаю сомневаться в собственных силах.. Помогите советом, может литературой я и варианты пойти куда- нибудь учится тоже рассматриваю
 
Что за книжка и в чем именно "тугость"?

И главное почему с нуля решил заняться именно C#?
 
Книжка Фролова язык С# самоучитель 2003.
взялся за С# чтобы дописывать библиотеки и кнопочки для ПО у которого есть апи.
Есть поддержка и вижуал бейсика, но со слов коллег программеров лучше всего подходит с шарп.
Тугость состоит в том, что я до сих пор не знаю с чего же начать написание программы. Уже осилил третью часть книги, понимаю что конечно надо дочитать до конца, но все сложнее себя заставить. кроме прогаммы хелоу ворлд еще ничего не написал. Есть образцы исходного кода, но пока понимание его нету.
 
Останнє редагування:
посмотри Стивен Прата "С++, лекции и упражнения" и Харви Дейтел, Пол Дейтел "Как программировать на C++"
 
хм.. а почему предлагаете С++??
вроде как с++ сложнее с шарпа, поэтому и не хотелось бы себе усложнять жизнь или может я чего то не понимаю

Вот пример того, что хотелось бы понимать и создавать самому:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;


namespace HelpFunctions.Forms
{
public partial class DrawRectangleForm : Form
{
#region Variables
List<ILayer> m_mapLayers = null;
ILayer m_layerToEdit = null;
IActiveView refresh = null;
IPoint m_pointX = null;
IEditor m_editor = null;
BaseClass baseClass = null;
#endregion

public DrawRectangleForm(List<ILayer> m_mapLayers, IHookHelper m_hookHelper, IPoint m_pointXY, IEditor m_editor)
{
InitializeComponent();

this.refresh = m_hookHelper.ActiveView;
this.m_pointX = m_pointXY;
this.txt_X.Text = m_pointXY.X.ToString();
this.txt_Y.Text = m_pointXY.Y.ToString();
this.m_editor = m_editor;
this.m_mapLayers = m_mapLayers;

baseClass = new BaseClass(m_hookHelper);

if (m_editor != null)
{
if (m_editor.CurrentTask.Name == "Create New Feature")
{
if (m_editor.EditState == esriEditState.esriStateNotEditing)
{
FillComboboxWithMapLayers(m_mapLayers);
}
else
{
IEditLayers m_editLayer = m_editor as IEditLayers;
if (m_editLayer.CurrentLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPolygon)
{
this.cmb_layers.Items.Add(m_editLayer.CurrentLayer.Name);
cmb_layers.SelectedIndex = 0;
}
else
{
MessageBox.Show("Слой, находящийся на редактировании не является полигональным", "Ошибка геометрии", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
this.Close();
}
}
}
else
{
MessageBox.Show("Текущая задача должна быть <Create New Feature>", "Рисование прямоугольника", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
this.Close();
}
}
}

private void btn_draw_Click(object sender, EventArgs e)
{
if (cmb_layers.Items.Count != 0)
{
if (!String.IsNullOrEmpty(txt_X.Text) ||
!String.IsNullOrEmpty(txt_Y.Text) ||
!String.IsNullOrEmpty(txt_width.Text) ||
!String.IsNullOrEmpty(txt_height.Text))
{
try
{
double X0 = double.Parse(txt_X.Text);
double Y0 = double.Parse(txt_Y.Text);
double width = double.Parse(txt_width.Text);
double height = double.Parse(txt_height.Text);

if (!(X0 < 0 || Y0 < 0 || width <= 0 || height <= 0))
{
if (m_editor.EditState == esriEditState.esriStateNotEditing)
{
baseClass.CreateRectangle(m_layerToEdit, X0, Y0, width, height);
this.refresh.Refresh();
this.Close();
}
else
{
baseClass.CreateRectangle(X0, Y0, width, height, m_editor);
this.refresh.Refresh();
this.Close();
}

}
else
{
MessageBox.Show("Высота и ширина не должны ровняться нулю или быть отрицательными",
"Ошибка ввода данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message,
"Ошибка ввода данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
MessageBox.Show("Должны быть заполнены все поля",
"Ошибка ввода данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
grb_coords.Enabled = false;
grb_edges.Enabled = false;
MessageBox.Show("Либо отсутствуют слои для редактирования, либо слой не выбран",
"Ошибка выбора слоя", MessageBoxButtons.OK, MessageBoxIcon.Error);

}
}

private void FillComboboxWithMapLayers(List<ILayer> m_mapLayers)
{
cmb_layers.Tag = m_mapLayers;
if (m_mapLayers.Count != 0)
{
foreach (ILayer layer in m_mapLayers)
{
cmb_layers.Items.Add(layer.Name);
}
cmb_layers.SelectedIndex = 0;
}
else
{
grb_coords.Enabled = false;
grb_edges.Enabled = false;
btn_draw.Enabled = false;
MessageBox.Show("В проекте отсутсвуют слои для редактирования", "Внимание", MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
}

private void cmb_layers_SelectedIndexChanged(object sender, EventArgs e)
{
if (m_editor.EditState == esriEditState.esriStateNotEditing)
{
int layerToEdit = cmb_layers.SelectedIndex;
List<ILayer> m_layers = (List<ILayer>)cmb_layers.Tag;
m_layerToEdit = m_layers[layerToEdit];
}
}

}
}
 
Останнє редагування:
Ну так ведь понятие класс - это уже с++. Да и чтоб разобраться как работает тот или иной класс, лучше всего написать его самому. По крайней мере в шаге меня так учат.
 
Чтоб изучить C# совсем необязательно сперва выучить С++. Конечно плохо, что нет никакого опыта программирования как такового, но опять же понятия "класса" можно увидеть и в шарпе :) А книг на самом деле необьятная куча и в основном по разным аспектам NET Для начала выбери то, что тебе действительно нужно: Веб, десктоп... и книгу для этого, а после не просто читай ее, а сразу пробуй примеры которые там есть и обязательно разбирайся с ними... Про выбранный самоучитель никогда не слышал и немогу ничего сказать, но чтоб разобраться с NET можно прочитать книгу Троелсена "C# и платформа NET", который может быть когда-нибудь перерастет в Рихтера =)
А по поводу с чего начать: я так понял ты уже кое что-то перечитал и базовые вещи какие-то понимаешь и интересуешся десктопом, то найди книгу в которой будет описываться создание приложений для виндоус на "шарпе" с подробным описание компонентов, самой ИДЕ, примеров и тд. Вот например у себя нашел подобную книгу неизвестного правда для меня автора, но по содержанию наверняка помогла бы тебе ;)
"Создание приложений для Wondows" В. В. Лабор
 
рассматривал вариант обучения в Шаге, но там нет отдельно курса по с шарп, а многое, что там дается в нагрузку мною пока не востребовано.

спасибо ТЕМHbIY!
попробую поискать по приложениям для виндоус по с шарп, а по использованию примеров то к сожалению пока по книге идут условно взятые примеры и библиотеки
using System;
namespace Shapel
{
class Shape
{
protected int xPos;
protected int yPos;
public Shape(int x, int y)
{
xPos = x;
xPos = y;
class Point : Shape
{
public Point(int x, int y) : base (x, y)
{
)
public void Drawfint x, int y)
{
Console.WriteLine("Рисование точки в ({0}, {1})", x, у);
xPos = x;
xPos = у;
class Rectangle : Shape
{
int width;
int height;
public Rectangle(int x, int y, int w, int h) : base(x, y)
{
width = w;
height = h;
}
public void Draw(int x, int y)
{
Console.WriteLine("Рисование прямоугольника в ({0}, {1})
x, у) ;
xPos = X;
yPos = у;
class ShapelApp
{
static void Main(string[] args)
{
Point pt = new PointA0, 2 5);
pt.DrawD, 7);
Rectangle rect = new RectangleA, 4, 10, 20);
rect.DrawA0, 12);
Console.ReadLine();

полностью книга называется так:А В. Фролов, Г. В. Фролов. Язык С# Самоучитель
мне показалась эта книга наиболее понятной
 
Я заканчивал ВУЗ, поэтому невладею инфой по-поводу каких-либо курсов...

П.С. уверен, что можно изучить очень многое без дополнительной помощи преподователей, в том числе и C#... главное желание ну и конечно же способности...
 
может оно тебе и не нужно? сам язык - это самое примитивное в работе программера. работа не то что "не легкая", а скорее подойдет слово "вредная", длительное сидение за компом наносит вред здоровью :)
 
высказывайте пожалуйста еще свои советы и предложения

ОНО мне нужно!!
Я самостоятельно освоил работу с програмной линейкой, поднял базу данных под SQL server организовал публикацию данных на ВЕБ, все что касается данных, не хватает навыков создание клиентского ПО или функционала под требования заказчика, чтобы получился полный цикл
 
Останнє редагування:
может оно тебе и не нужно? сам язык - это самое примитивное в работе программера. работа не то что "не легкая", а скорее подойдет слово "вредная", длительное сидение за компом наносит вред здоровью :)

Он на самом деле прав!

Стоит много раз подумать и решить для себя готов ли ты пойти на эти жертвы...

Могу по-поводу курсов только добавить, что шаг вроде как многие хвалят, но опять же я в твоем случае рассматриваю этот вариант только если тебе необходимы знания СРОЧНО. Если есть время то можешь свободно освоить написание клиентских средней сложности программ и самостоятельно.
 
спасибо ТЕМHbIY! еще раз!!
Сроки меня не поджимают, ничего гинеально нового я не планирую создавать или учавствовать в серйозных проектах. Моя задача более примитивная. Есть апи под конкретноое ПО, в нем огромное колличество уже созданных библиотек, все что я хочу, это умело складывать их как кирпичики.
данное ПО я хорошо знаю и владею его функциональным набором и возможностями, но только в стандартном интефейсе
 
Имхо C# - это самое лёгкое, что может быть в императивном программировании. Советую меньше сидеть на форумах, а больше читать и работать.
Тяжело в учении - легко в бою©
 
Ну так ведь понятие класс - это уже с++. Да и чтоб разобраться как работает тот или иной класс, лучше всего написать его самому. По крайней мере в шаге меня так учат.
+:клас::D:іржач: Напиши сам класс типа TObjact
 
Ч понятия "класса" можно увидеть и в шарпе :)

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

палюбому.... :іржач:
лучше продавцом или грузчиком в супермаркете
 
извените, но мне не понятна ваша радость
 
это ирония была, а не радость...

Good luck in software development :)
 
Назад
Зверху Знизу