Рейтинг:
1
OriginalGriff
В этом коде нет ни рекурсии, ни цикла.
В классе CZKEM может быть рекурсия или итерация, но мы не можем видеть ее, если она есть.
Вы же понимаете, что рекурсия-это вызов метода (прямо или косвенно) из самого себя, не так ли?
public int factorial(int x)
{
if (x <= 1) return 1;
return x * factorial (x - 1);
}
То, что вы имеете в этом коде, - это не Рекурсия, это
инкапсуляция[
^ а это совсем другое дело.
david salaman
о thnx для быстрого ответа))). я не понимаю, что это такое((( объясните плзз, если можете. что здесь происходит:в этом коде ниже
public bool Beep(int DelayMS)
{
возврат objCZKEM.Beep(DelayMS);
}
F-ES Sitecore
Если вы не понимаете таких основных аспектов c#, то вам нужно взять книгу по c# и начать читать, мы не можем научить вас такой широкой теме с нуля. Если мы объясним вам эту строчку, вы захотите, чтобы объяснили следующую, а затем еще одну. Вы в конечном счете хотите, чтобы другие люди делали вашу работу за вас, и это не то, для чего этот сайт предназначен.
OriginalGriff
Чего ты не понимаешь?
Я не пытаюсь быть смешным здесь, но это очень, очень основные вещи о классах - я понятия не имею, какую часть этого вы не понимаете, потому что любой, кто может создать класс, должен точно знать, что здесь происходит!
Единственное небольшое осложнение - это технический термин "инкапсуляция", но это очень четко объясняется в результатах поиска, которые я вам дал.
david salaman
публичный интерфейс IZKEM
{
[DispId(3)]
bool ClearAdministrators(int dwMachineNumber);
[DispId(4)]
bool DeleteEnrollData(int dwMachineNumber, int dwEnrollNumber, int dwEMachineNumber, int dwBackupNumber);
[DispId(134)]
bool BatchUpdate(int dwMachineNumber);
........
используя системы.Во время выполнения.InteropServices;
пространство имен zkemkeeper
{
[CoClass(typeof(CZKEMClass))]
[Guid("102F4206-E43D-4FC9-BAB0-331CFFE4D25B")]
публичный интерфейс CZKEM : IZKEM, _IZKEMEvents_Event
{
}
}
Итак, какова цель этого???
публичный класс ZkemClient : IZKEM
{
CZKEM objCZKEM = новый CZKEM();
public bool BatchUpdate(int dwMachineNumber)
{
верните objCZKEM.BatchUpdate(dwMachineNumber);
}
}
разве мы не можем использовать эти методы другими способами???
OriginalGriff
Я не могу обучать тебя каждой детали, когда ты еще не усвоил основы. Может быть, вы их просмотрели, может быть, у вас был плохой учитель, может быть, вы просто решили, что это скучно, и не обратили внимания - я не знаю.
Но... Я действительно знаю, что вам нужно лучше понять основы, прежде чем вы начнете переходить к более сложным вещам - вам действительно нужно вернуться к началу и начать учиться.
david salaman
мм thnx))) я узнал о типах данных, классах, абстрактных, классах, интерфейсах, свойствах, доступах, модификаторах, инкапсуляции, делегировании, событиях, циклах, операторах условий, но где же это???
OriginalGriff
Хм...
- я узнал о ... , ****инкапсуляции****, ..."
И что вы узнали о "инкапсуляции", кроме "это не так пишется"? :смеяться:
david salaman
то, что я узнал об инкапсуляции. -нехорошо иметь поля открытыми. Сделайте их частными и используйте свойства или методы для работы с ними. вот и все, что я понял. ссри, если у тебя есть время.
OriginalGriff
Затем вам нужно вернуться к началу и прочитать снова - хотя это правда, что вы не должны раскрывать поля, это почти не имеет ничего общего с инкапсуляцией, которая заключается в том, чтобы раскрывать только те свойства и методы из класса, используемого в вашем классе, которые необходимы внешнему миру для выполнения этой работы.
david salaman
КК. просто мне действительно нужно вернуться)))
OriginalGriff
- Боюсь, что так- удачи!
david salaman
Найти ответы)))))))))))))))))))))
Проблема
У вас есть подкласс, который использует только часть методов своего суперкласса (или невозможно наследовать данные суперкласса).
Решение
Создайте поле и поместите в него объект суперкласса, делегируйте методы объекту суперкласса и избавьтесь от наследования.
OriginalGriff
:большой палец вверх: