Я пытаюсь использовать два разных производных класса, которые наследуются от базового класса, каждый из которых имеет логическую переменную, которая отличается от другой. Логическое значение было назначено как в базовом, так и в производном классах. Однако когда я получаю доступ к методу из производного класса, который объявлен только в базовом классе, логический результат приводит к результату базового класса.
Я уже пытался выполнить метод в каждом классе, который инициализирует свои объявленные переменные. Изменений не было.
public partial class Form2 : Form
{
public class BaseC : Form
{
public bool reversePlace = false;
public void computeInput(BaseC cc)
{
if (reversePlace)
{
//Execute condition
if (cc.reversePlace)
{
//Execute execution from other derived class
}
}
}
}
public class DerivedC1 : BaseC
{
public bool reversePlace = true;
}
public class DerivedC2 : BaseC
{
public bool reversePlace = false;
}
DerivedC1 C1 = new DerivedC1();
DerivedC2 C2 = new DerivedC2();
public Form2()
{
C1.computeInput(C2); //Should execute first condition for being true while ignoring the inner condtion for being false
}
}
Я должен получить оператор if из C1 на полпути, пропуская условие if для C2. Логическое значение С1 должно быть истинным, а С2 - ложным. Однако оба логических значения рассматриваются как ложные.