C# 什么是;“基础”;语法意义?

C# 什么是;“基础”;语法意义?,c#,syntax,C#,Syntax,请告诉我下面的语法是什么意思 public ScopeCanvas(Context context, IAttributeSet attrs) : base(context, attrs) { } 我的意思是什么是方法(参数):基(参数){} 这是一个类的构造函数。您的类很可能是这样定义的: MyClass : BaseClass 它起源于另一个阶级:在派生类的构造函数中运行代码之前,构造函数上的base(…)在基类中调用相应的构造函数 这是一个相关的问题 编辑 正如Tilak所指出的,提供

请告诉我下面的语法是什么意思

public ScopeCanvas(Context context, IAttributeSet attrs) : base(context, attrs)
{
}
我的意思是什么是
方法(参数):基(参数){}


这是一个类的构造函数。

您的类很可能是这样定义的:

MyClass : BaseClass
它起源于另一个阶级<代码>:在派生类的构造函数中运行代码之前,构造函数上的base(…)在基类中调用相应的构造函数

这是一个相关的问题

编辑


正如Tilak所指出的,提供了一个很好的解释。

调用基类的命名构造函数。如果未指定base(参数),则调用无参数构造函数


它从基类调用构造函数,传递参数
context
attrs

您的类是从基类继承的,当您初始化ScopeCanvas类型的对象时,将使用(context,attrs)的参数列表调用基类构造函数派生类型通过
:base
语法链接到接受指定参数的基类上的构造函数。如果省略,编译器将以静默方式尝试绑定到接受0个参数的基类构造函数

class Parent {
  protected Parent(int id) { } 
}

class Child1 : Parent {
  internal Child1() { 
    // Doesn't compile.  Parent doesn't have a parameterless constructor and 
    // hence the implicit :base() won't work
  }
}

class Child2 : Parent {
  internal Child2() : base(42) { 
    // Works great
  }
}

还有
:此
语法允许链接到具有指定参数列表的同一类型构造函数

这意味着此构造函数接受两个参数,并将它们传递给继承对象构造函数。下面是一个只有一个参数的示例

Public class BaseType
{
    public BaseType(object something)
    {

    }
}

public class MyType : BaseType
{
     public MyType(object context) : base(context)
     {

     } 
}

这是一个抽象的重载类构造函数,它允许初始化派生类和基类的参数,并指定是否使用重载构造函数。


在上面的例子中,所有人都在谈论:base没有人在谈论base。 Yes base用于访问父级的成员,但不限于构造函数。我们只能直接使用base.\u parentVariable或base.\u parentMethod()


这是一种构造,而不是一种方法。我认为,如果一个问题在不到两分钟内有5个以上的答案,就不应该问它@Sean87你可以很容易地用谷歌搜索“C#base关键字”,然后使用StackOverflow。(@Yorye Nathan-这正是我的观点。)我知道这很老了,但我用谷歌搜索了“C::base关键字”,然后来到了这里。。。当然,MSDN链接是第一个链接,但答案通常更简洁。“如果省略,编译器将默默地尝试绑定到接受0参数的基类构造函数。”这是解释中最关键的部分-谢谢。
public class A
{
    public A()
    { }
    public A(int size)
    { }
};

class B : public A
{
    public B() 
    {// this calls base class constructor A() 
    }
    public B(int size) : base(size)
    { // this calls the overloaded constructor A(size)
    }
}