Bunun için bana hem ItemA'nın hem de ItemB'nin adını söylemesini istiyorum. Bana "Subitem \ nSubitem" demeli, bunun yerine "Item \ nSubitem" yazıyor. Bunun nedeni, Subitem sınıfında tanımlanan "Ad" değişkeninin teknik olarak, Temel Öğe sınıfında tanımlanan "Ad" değişkeninden farklı bir değişkendir. Orijinal değişkeni yeni bir değere değiştirmek istiyorum. Bunun neden en kolay şey olduğunu anlayamıyorum, sanal olarak düşünmek ve yöntemleri mükemmel bir şekilde geçersiz kılmak. 'un aslında bir değişkeni nasıl geçersiz kıldığını öğrenemedim. alanlara (bir değişkenleri dediğimiz) ile (override
onun şey kılan) polimorfizm hiçbir kavram yokturC# alt sınıfında bir üye değişkeni (alan) nasıl geçersiz kılar, gizlerim?
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";
}
}
Sen * sanal * olabilir şeye ihtiyacım - a * Mülkiyet * ("Getter") veya * Yöntemi *. Üye değişkenler * asla * sanal değildir. –