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
引用,但该实例仍然是aB
。在您的例子中,这个内基类
只是对创建的任何实例的基类
引用。不要将指向对象的引用类型与对象本身的类型混淆,它们不必相同。是知道这一点非常明智。另外,请检查谢谢@CodeNotFound。我想我误解了这里描述的一些用法。