我一直在学习 C# 并想查看一些开源项目以查看一些编写好的代码。我在 sourceforge 上找到了一个名为 Todomoo 的项目,其中有一部分让我感到困惑:
public class Category {
// Note properties
private int id = 0;
private string name = "";
private Color colour = Color.Gray;
/// <summary>
/// Create a new category.
/// </summary>
public Category() { }
/// <summary>
/// Load a category from the database.
/// </summary>
/// <param name="Id">ID of the category</param>
public Category(int id) : base() {
Load(id);
}
这里它在其中一个构造函数中使用了 base()
,但该类不是派生类。那到底是为了什么?
为什么 base()
的语法是那样而不是这样:
public Category(int id) {
base();
Load(id);
}
最佳答案
but the class is not a derived class
该类是派生类 - 它隐式继承自 System.Object
。目前尚不清楚为什么有人会为 System.Object
调用 base()
构造函数,尽管:它也是隐式完成的。
就语法而言,我的猜测是 C# 采用了一种接近于 C++ 初始化器列表的语法,而不是基础构造函数的 Java 调用。
关于c# - C#中base()的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11867031/