当前位置: 首页 > 知识库问答 >
问题:

如何从另一个类的空构造函数调用一个类的空构造函数?(没有继承)在C#中

卢锋
2023-03-14
class Bank
{
   private BankHashSet<string, BankAccount> _accounts;

    public Bank(int size,BankHashSet<string,BankAccount>.HashCallback hashFunction)
    {
        BankHashSet<string,BankAccount> e = new BankHashSet<string,BankAccount>(size, hashFunction);
        _accounts = e;
      
    }
    public Bank():this()// *
    {
      
    }
}

*我想在那里调用BankHashSet empty consructor。谢谢.

共有1个答案

谭兴学
2023-03-14

您可以像这样重载您的构造函数:

class Bank
{
    private BankHashSet<string, BankAccount> _accounts;

    public Bank() : this(new BankHashSet<string, BankAccount>()) { }

    public Bank(int size, BankHashSet<string, BankAccount>.HashCallback hashFunction)
        : this(new BankHashSet<string, BankAccount>(size, hashFunction)) { }
    
    private Bank(BankHashSet<string, BankAccount> bankHashSet)
    {
        _accounts = bankHashSet;
    }
}

现在,当您调用new Bank()时,它将使用它的无参数构造函数创建一个新的BankHashSet

 类似资料:
  • 问题内容: 我在一个Activity中有一个IntentService,当我尝试调用该服务时,它将引发此错误,我发现这很奇怪,因为如果我声明了空的构造函数。 错误: AndroidManifest.xml 活动: 问题答案: 你是一个内部阶级。如果要将其保留在内部,请将其更改为static: 您可能需要阅读不同类型的嵌套类。google的第一个链接:http : //docs.oracle.com

  • 我在为继承另一个类属性的类定义构造函数时遇到困难 我在第 18 行(方面遇到了问题。 我收到的错误发生在我申报< code >运输的地点。 如代码所示,运输类是主体类,继承 这个错误发生在int 最后一个错误发生在两个字符串变量上。

  • 问题内容: 是否可以从另一个(在同一类中,而不是在子类中)调用构造函数?如果是,怎么办?调用另一个构造函数的最佳方法是什么(如果有几种方法可以做到)? 问题答案: 对的,这是可能的: 要链接到特定的超类构造函数而不是同一类中的构造函数,请使用代替。注意,你只能链接到一个构造函数,它必须是构造函数主体中的第一条语句。

  • 问题内容: 这是面试中提出的问题。如果一个类在Java中何时有多个构造函数,我们可以从另一个构造函数调用另一个函数吗? 问题答案: 可以,我知道的语法是 您还可以通过以下方式调用超类的构造函数 这两个调用只能作为构造函数中的第一条语句完成(因此,您只能在执行其他任何操作之前调用另一个构造函数)。

  • 问题内容: 在创建Java程序时,我遇到了一个问题, 子类构造函数通过调用超类的方法抛出错误 代码类似于以下内容: 错误是这样的: 为什么会这样? 问题答案: 超类没有默认的构造函数。因此,您需要将适当的构造函数参数传递给超类: (在和构造函数中,将其作为第一行。)在两种情况下,您都应删除该行。 通常,如果构造函数不是以or 语句开头(并且您只能使用其中之一,而不能同时使用两者),则默认情况下使用

  • 人们有时会对类成员函数或成员变量的作用域问题感到困惑,尤其是,当基类与派生类的同名成员不在同一个作用域内时: struct B { void f(double); }; struct D : B { void f(int); }; B b; b.f(4.5); // OK // 调用的到底是B::f(doube)还是D::f(int)呢? // 实际情况往往会让人感到意外