david salaman Ответов: 1

Рекурсивный булев метод C# (zkempeerer.dll)


Привет всем. plzzz не перенаправляйте меня на какой-то другой веб-источник или кого-то еще. это не очень хороший способ ответить.

А мой вопрос заключается в том, почему здесь используется рекурсивный метод. класс (
CZKEM();
) ниже от zkempeerer.dll он заключается в подключении и управлении сканером устройства.какая польза от того, чтобы сделать его метод рекурсивным? Я никогда не использовал рекурсию.

class SomeClass{
 CZKEM objCZKEM = new CZKEM();

        #region 'What we will be using'

        public bool BatchUpdate(int dwMachineNumber)
        {
            return objCZKEM.BatchUpdate(dwMachineNumber);
        }

        public bool Beep(int DelayMS)
        {
            return objCZKEM.Beep(DelayMS);
        }

}


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

Я искал в google и других веб-источниках. но они говорят о разнице между циклом, рекурсией и итерацией ...

1 Ответов

Рейтинг:
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

:большой палец вверх: