相关疑难解决方法(0)

为什么构造函数不返回值?

请告诉我为什么构造函数不返回任何值.我想要一个完美的技术理由向我的学生解释为什么构造函数没有任何返回类型.

constructor

80
推荐指数
2
解决办法
8万
查看次数

为什么我不能在抽象C#类上创建抽象构造函数?

我正在创建一个抽象类.我希望每个派生类都被强制实现构造函数的特定签名.因此,我做了我想做的事情,我想强制他们实现一个方法,我做了一个抽象的方法.

public abstract class A
{
    abstract A(int a, int b);
}
Run Code Online (Sandbox Code Playgroud)

但是我收到一条消息,说明这个项目的抽象修饰符无效.我的目标是强制这样的代码.

public class B : A
{
    public B(int a, int b) : base(a, b)
    {
        //Some other awesome code.
    }
}
Run Code Online (Sandbox Code Playgroud)

这是所有C#.NET代码.谁能帮我吗?

更新1

我想补充一些东西.我最终得到的是这个.

private A() { }

protected A(int a, int b)
{
    //Code
}
Run Code Online (Sandbox Code Playgroud)

这就是一些人所说的,默认是私有的,并且类需要实现构造函数.但是,这不会强制带有签名A(int a,int b)的构造函数.

public abstract class A
{
    protected abstract A(int a, int b)
    {


    }
}
Run Code Online (Sandbox Code Playgroud)

更新2

我应该清楚,为了解决这个问题,我将默认构造函数设为私有,并保护我的其他构造函数.我并不是在寻找一种让我的代码工作的方法.我照顾好了.我想了解为什么C#不允许你这样做.

c# oop inheritance constructor abstract-class

59
推荐指数
4
解决办法
6万
查看次数

标签 统计

constructor ×2

abstract-class ×1

c# ×1

inheritance ×1

oop ×1