aşağıdaki örneği bulabilirsiniz:Neden ToString() yöntemi, C# içinde miras kalmadan, geçersiz kılınabilir?
using System;
class MyClass
{
static int count = 0;
int id;
public MyClass()
{
id = count;
count++;
}
public override string ToString()
{
return "MyClass object #" + id;
}
}
class Test
{
static void Main()
{
MyClass ob1 = new MyClass();
MyClass ob2 = new MyClass();
MyClass ob3 = new MyClass();
Console.WriteLine(ob1);
Console.WriteLine(ob2);
Console.WriteLine(ob3);
}
}
programından çıkış burada gösterilir:
Sınıfım # 0
Sınıfım nesne 1.
Sınıfım sizin gibi 2.
nesne nesne ToString() metodu, 'MyClass' sınıfında geçersiz kılınır ancak 'MyClass' herhangi bir sınıftan türetilmez, hiç miras kalmaz. Miras yoksa, 'geçersiz kılma' nasıl kullanılabilir?
size Kanunu altında pasajı gibi ') (HelloString' demek başka bir yöntemle Adına ToString() değiştirirseniz:
public class Program
{
public static void Main(string[] args)
{
MyClass ob1 = new MyClass();
MyClass ob2 = new MyClass();
MyClass ob3 = new MyClass();
Console.WriteLine(ob1);
Console.WriteLine(ob2);
Console.WriteLine(ob3);
}
}
class MyClass
{
static int count = 0;
int id;
public MyClass()
{
id = count;
count++;
}
public override string HelloString()
{
return "MyClass object #" + id;
}
}
Derleyici hata atar:
'uygun bir yöntem geçersiz olduğu tespit'Bu özel davranış neden 'ToString()' yöntemiyle?
[object] öğesinden devralınacaksınız (https://msdn.microsoft.com/en-us/library/system.object (v = vs.110) .aspx). – LarsTech