我想告訴我ItemA和ItemB的名稱。它應該告訴我「Subitem \ nSubitem」,但它會告訴我「Item \ nSubitem」。這是因爲Subitem類中定義的「Name」變量在技術上與基類Item中定義的「Name」變量不同。我想將原始變量更改爲新值。我不明白爲什麼這不是最簡單的事情,考慮到虛擬和覆蓋完美的方法。我已經完全無法知道如何實際覆蓋一個變量。如何覆蓋,而不是隱藏,在C#子類中的成員變量(字段)?
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";
}
}
您需要的東西可以是* virtual * - a * Property *(「Getter」)或* Method *。成員變量*從不*虛擬。 – 2012-01-13 01:11:30