C#では、参照によってパラメータを渡すことができます。例えば:TypeScript渡しrefパラメータ
private void Add(ref Node node)
{
if (node == null)
{
node = new Node();
}
}
Add(ref this.Root);
this.Root
私は活字体から見てきたものからAdd(ref this.Root)
を行った後、ヌルではないでしょう、参照によってパラメータを渡すことはできません。このコード:それのコピーがaddAux
に渡されますので、addAux(this._root)
を行った後
private addAux(node: Node): void {
if (node === undefined) {
node = new Node();
}
}
addAux(this._root);
、this._root
はまだ未定義になります。
TypeScriptのC#のref
キーワードと同じ機能を使用する回避策はありますか?私は今、来ることができ
オブジェクト 'mutable'内のノードは未定義ではありませんが、' this._root'は引き続き未定義です。 – Bsa0
はい、この提案はもうthis._rootを使用せず、代わりにmutable.nodeを使用することです。そうでなければ、C# 'ref'構文を模倣することはできません。 – lilezek
上記はうまくいくが、IMHOでは正しい方法ではありません。その代わりに、メソッドから新しい値を返すことで(つまり、呼び出し元が変数に新しい値を再割り当てするかどうかを決定することによって)、言語を使って作業してください。方法。 –