Member 12650701 Ответов: 3

Что касается создания объектов в C#


могу ли я создать объект дочернего класса с помощью родительского класса следующим образом:
менеджер obj=новый сотрудник если да, то где он нужен? и как это реализовано на уровне памяти
спасибо Вам за ответ

Что я уже пробовал:

я новичок в C# и упс . это моя первая встреча с c#, и прошло всего 15 дней с c# , так что помогите мне научиться

3 Ответов

Рейтинг:
5

BillWoodruff

Добро пожаловать в замечательное приключение изучения C# !

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

Вам нужно начать с некоторого усердного изучения и практики основ. Получите хорошее введение в C# и .NET; вот хорошее, которое вы можете скачать бесплатно прямо сейчас: Charles Petzold, " .NET Book Zero: [^Есть очень хорошая бесплатная книга на английском языке, созданная группой болгарских программистов C#, которую вы можете скачать здесь: [^].

Я настоятельно рекомендую вам приобрести болгарскую книгу и внимательно ознакомиться с ней:

1. первая Глава 14, "определение классов", стр.

2. Глава 11., "Создание и использование объектов," страницы #385 ФФ.

Практическая практика очень важна; вам нужно настроить Visual Studio, Если вы еще этого не сделали, и взять свою книгу, и код в примерах; запустить их, наблюдать, что происходит. Когда возникают ошибки ... и они произойдут ... поместите точки останова в свой код, а затем запустите код.

Обучение отладке имеет решающее значение, и когда ваш код останавливается в точке останова, вы можете использовать F11 в Visual Studio для одношагового просмотра кода, наблюдая за значениями переменных и объектов, наводя курсор на их имена в коде.

имхо это некоторые вещи которые помогут вам научиться:

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

2. Используйте документацию, предоставленную Visual Studio, которая так легко доступна.

3. Потратьте время здесь, на CodeProject, читая некоторые из многих превосходных учебных пособий по каждому аспекту C# и. NET.

4. классы и наследование: помните, что определение класса или структуры является шаблоном для построения экземпляров (объектов) при выполнении скомпилированного кода, который вы пишете (во время выполнения).

Существует множество мощных средств, доступных для реализации ООП и наследования в C#, включая интерфейсы, абстрактные классы, виртуальные методы,возможность переопределения методов и т. д.

Поймите, что большинству людей потребуется несколько месяцев, чтобы по-настоящему овладеть этими инструментами.

5. C#: как и любой компьютерный язык, который вам нужно будет понять:

a. создание переменных и свойств. понимание того, как переменные могут быть переданы (и возвращены) методам (в качестве параметров) по ссылке и с помощью модификатора 'out. модификаторы доступа, которые помещаются перед объявлениями переменных / свойств (private, public, protected и т. д.).

б) создание структур данных, подобных массивам. создание универсальных структур данных.

гр. написание методов С и без параметров, написание методов, которые возвращают какое-либо значение(Ы), и методы, которые не возвращают значений (ничтожным).

д. потока управления: цикл for, цикл while, Switch оператор. попробовать/поймать/наконец-то. используйте "перерыв" и "продолжить".

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

А теперь давайте приступим к учебе ... :)


Member 12650701

Спасибо сэру Биллу Вудраффу за то, что он подбодрил меня и дал четкие рекомендации, как быть знатоком языка Си#.

BillWoodruff

Добро пожаловать !

Рейтинг:
22

Richard MacCutchan

Нет, вы не можете, так как класс менеджера-это больше, чем просто сотрудник. Вы можете сделать это наоборот, но это действительно не имеет смысла.


Рейтинг:
17

OriginalGriff

Это зависит.
Если ваши классы объявлены правильно, то да - но так как менеджер-это сотрудник, а сотрудник не обязательно должен быть менеджером, то, вероятно, нет.
Обычно у вас было бы это:

class Employee
   {
   string Name {get; set;}
   int EmployeeNumber {get; set;}
   Employee ReportsTo {get; set;}
   }
class Manager : Employee
   {
   Car CompanyCar {get; set;}
   }

И тогда вы можете с радостью сказать:
Employee emp = new Manager();
Потому что менеджер - это "суперсеть" сотрудника.
Затем вы можете получить доступ к любым свойствам сотрудника:
Employee emp = new Manager();
...
Console.WriteLine(emp.Name);
Но ... поскольку emp может содержать "любого сотрудника", вы не можете получить доступ к каким-либо конкретным свойствам методов менеджера через него.
Manager man new Manager();
Employee emp = man;
...
Console.WriteLine(emp.Name);
Console.WriteLine(man.CompanyCar);

Но ты не можешь этого сделать:
Manager man = new Employee(); 
Потому что сотрудник не обладает никакими специфическими для менеджера свойствами методов: в данном случае потому, что сотрудник не получает машину компании, а менеджеры-нет.


Member 12650701

ОТЛИЧНОЕ ОБЪЯСНЕНИЕ, СЭР.

OriginalGriff

Пожалуйста!