gpt4 book ai didi

c# - 关于C#构造函数的问题

转载 作者:行者123 更新时间:2023-11-30 19:07:28 25 4
gpt4 key购买 nike

你好
关于名为 Square 的类中的此部分代码:

public Square( int i_RowIndex, eColumn i_ColIndex) 
{
m_RowIndex = i_RowIndex;
m_ColIndex = i_ColIndex;
**new Square(i_RowIndex, i_ColIndex, eCoinType.NoCoin);**
}

public Square(int i_RowIndex, eColumn i_ColIndex, eCoinType i_CoinType)
{
m_RowIndex = i_RowIndex;
m_ColIndex = i_ColIndex;
m_Coin = i_CoinType;
}

在其他 C'tor 中调用重载的 C'tor 并使用粗体显示的"new"语句是不好的吗?我认为这是错误的,每次我们调用 new 时,我们都会分配一个新实例,并且从 C'tor 分配 2 个重复实例是不正确的,这意味着从一开始就分配一个实例。

我错了吗?

谢谢

最佳答案

您不应该从构造函数中调用重载构造函数,那样会创建一个新实例。

应该更像是:

public Square( int i_RowIndex, eColumn i_ColIndex)
: this(i_RowIndex, i_ColIndex, eCoinType.NoCoin)
{
}

public Square(int i_RowIndex, eColumn i_ColIndex, eCoinType i_CoinType)
{
m_RowIndex = i_RowIndex;
m_ColIndex = i_ColIndex;
m_Coin = i_CoinType;
}

关于c# - 关于C#构造函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5427274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com