Я очень новичок в C#, и я работаю через учебник. Учебник показывает этот кусок кода:Что это означает в конструкторе C#?
public class BankAccount
{
// Bank accounts start at 1000 and increase sequentially.
public static int _nextAccountNumber = 1000;
// Maintain the account number and balance for each object.
public int _accountNumber;
public decimal _balance;
// Constructors
public BankAccount() : this(0)
{
}
public BankAccount(decimal initialBalance)
{
_accountNumber = ++_nextAccountNumber;
_balance = initialBalance;
}
// more methods...
У меня возникают проблемы с пониманием этого:
public BankAccount() : this(0)
{
}
Он выглядит синтаксис для наследования, но я предполагаю, что это не потому, что this(0)
является не класс. И я не думаю, что логический смысл унаследовал бы тот же класс, который используется. Вероятно, это конструктор, и синтаксис меня сбивает с толку.
Что означает this(0)
? Зачем использовать this
, есть ли другой способ написать его?
Будет ли это тот же ?:
public BankAccount()
{
BankAccount(0);
}
Я понимаю следующее:
public BankAccount(decimal initialBalance)
{
_accountNumber = ++_nextAccountNumber;
_balance = initialBalance;
}
Это, кажется, конструктор, который принимает значение баланса, и устанавливает номер счета.
Я предполагаю, что this(0)
действительно просто выполняет BankAccount(0)
. Если это так, зачем писать два конструктора? BankAccount(0)
похоже работа хорошо.
Может кто-то объяснить, что this
является простым способом (новый в C#, исходя из питона) ?
Он вызывает другой конструктор – EZI
[this (C# Reference)] (https://msdn.microsoft.com/en-us/library/dk1507sz.aspx) – Plutonix
В C# вы не можете вызвать конструктор из ** body ** другого конструктора. («Будет ли это так же?: пример» – xanatos