“基本”语法是什么意思
本文关键字:是什么 意思 语法 基本 | 更新日期: 2023-09-27 18:33:28
索蒙能告诉我下面的语法是什么意思吗?
public ScopeCanvas(Context context, IAttributeSet attrs) : base(context, attrs)
{
}
我的意思是method(argument) : base(argument) {}
是什么?
P.S 这是一个类的构造函数。
: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
}
}
还有:this
语法,它允许链接到具有指定参数列表的相同类型的构造函数
你的类可能是这样定义的:
MyClass : BaseClass
它派生自其他类。 在派生类的构造函数中运行代码之前,构造函数上的: base(...)
调用基类中的相应构造函数。
这是一个相关的问题。
编辑
正如 Tilak 所指出的,有关基本关键字的 MSDN 文档提供了一个很好的解释。
调用基类的命名构造函数。 如果未指定 base( 参数),则调用无参数构造函数
c# 中"base"关键字的真正目的是什么?
基本关键字
它从基类调用构造函数,将参数传递context
并attrs
这是一个抽象的重载类构造函数,它允许启动派生类和基类的参数,并指定是否要使用重载构造函数。链接
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)
}
}
您的类是从基类继承的,当您初始化 ScopeCanvas 类型的对象时,将使用参数列表 (context, attrs)<</p>
这意味着此构造函数采用两个参数,并将它们传递给继承的对象构造函数。 下面是一个只有一个参数的示例。
Public class BaseType
{
public BaseType(object something)
{
}
}
public class MyType : BaseType
{
public MyType(object context) : base(context)
{
}
}
在上面的例子中,所有人都在谈论:base,没有人在谈论base。是的,base 用于访问父级的成员,但不限于构造函数,只有我们可以直接使用 base._parentVariable 或 base._parentMethod()。
基础。示例