Я хочу, чтобы это сообщило мне имя как ItemA, так и ItemB. Он должен сказать мне "Subitem\nSubitem", но вместо этого он сообщает мне "Item\nSubitem". Это связано с тем, что переменная "Имя", определенная в классе Subitem, представляет собой технически другую переменную, чем переменная "Имя", определенная в базовом классе Item. Я хочу изменить исходную переменную на новое значение. Я не понимаю, почему это не самая легкая вещь, когда вы считаете, что виртуальная и переопределенная работа отлично работает с методами. Я полностью не смог узнать, как фактически переопределить переменную.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Example
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine(ItemA.Name);
System.Console.WriteLine(ItemB.Name);
System.Console.ReadKey();
}
static Item ItemA = new Subitem();
static Subitem ItemB = new Subitem();
}
public class Item
{
public string Name = "Item";
}
public class Subitem : Item
{
new public string Name = "Subitem";
}
}