C# 是不是;这";总是知道调用对象吗?

C# 是不是;这";总是知道调用对象吗?,c#,inheritance,polymorphism,this,C#,Inheritance,Polymorphism,This,我希望避免在所有派生类中编写同一行代码。我的结构如下: using Newtonsoft.Json; public class BaseClass { public string BaseProperty { get; set; } public string Serialize() { return JsonConvert.SerializeObject(this); } } public class DerivedClass : BaseClass { publi

我希望避免在所有派生类中编写同一行代码。我的结构如下:

using Newtonsoft.Json;

public class BaseClass
{
    public string BaseProperty { get; set; }
    public string Serialize() { return JsonConvert.SerializeObject(this); }
}

public class DerivedClass : BaseClass
{
    public string DerivedProperty { get; set; }
}

DerivedClass
调用
Serialize()
时会发生什么情况?
是否足够聪明,可以知道子对象包含额外的属性?或者,我是否仅限于在
基类
的每个子类中编写这行代码?

一些语言特性/行为很容易实验。。。考虑到以下准则:

public class A
{
    public string WhoAmI => this.ToString();
}

public class B:A { }
您的问题相当于询问Console.WriteLine(新的B().WhoAmI)打印出什么

好吧,如果有疑问,运行它并查看。。。不到1分钟

是对对象的引用,其行为与任何其他引用一样,只是有一个特殊的名称

考虑以下几点:

A a = new B();

现在,您有一个
B
实例被
a
类型化引用
a
引用,但该实例仍然是a
B
。在您的例子中,
这个
基类
只是对创建的任何实例的
基类
引用。不要将指向对象的引用类型与对象本身的类型混淆,它们不必相同。

知道这一点非常明智。另外,请检查谢谢@CodeNotFound。我想我误解了这里描述的一些用法。