У меня есть класс, который наследуется от другого, и я хочу использовать одну из функций базового класса ... но я сталкиваюсь с проблемой, когда вызов базовой функции не возвращает переменную-член из унаследованного класса как Я надеялся.
Чтобы проиллюстрировать мою проблему, я создал упрощенный пример. Я ожидал, что этот пример выведет «5», но это не так :) Решение кажется заключается в том, что мне нужно скопировать функцию getInt () из myclass1 в myclass2 ... тогда это будет работать, но это, кажется, лишает смысла наследование от myclass1 (я хотел избежать дублирования функции в каждом классе).
class Program
{
static void Main(string[] args)
{
myclass2 myclass = new myclass2();
// Expected to output 5, but it actually outputs 0
Console.WriteLine( myclass.getInt() );
}
}
struct s1
{
public string str;
public int num;
}
struct s2
{
public int num;
public int num2;
}
class myclass1
{
internal s1 mystruct;
internal int getInt()
{
return mystruct.num;
}
}
class myclass2 : myclass1
{
internal new s2 mystruct;
internal myclass2()
{
mystruct.num = 5;
}
}