首頁 >後端開發 >C++ >C# 修改物件的 ref 和 out 關鍵字有什麼不同?

C# 修改物件的 ref 和 out 關鍵字有什麼不同?

Susan Sarandon
Susan Sarandon原創
2025-01-24 12:01:09414瀏覽

What's the Difference Between C#'s `ref` and `out` Keywords for Modifying Objects?

c#refout關鍵字:一個清晰的區別

>

在C#中,當方法需要修改作為參數傳遞的物件時,ref>和out關鍵字扮演著至關重要的角色。 雖然兩者都可以修改,但它們的行為卻大不相同。

>

ref關鍵字:修改現有物件

> ref關鍵字表示方法直接在原始物件上作為參數而不是副本運行。該方法中的任何變更直接影響原始物件。重要的是,必須在傳遞到方法之前初始化物件>

out關鍵字:建立與回傳物件

> 相反,

> out關鍵字指示該方法負責初始化物件。此方法將值指派給對象,然後將此新初始化的對象返回到呼叫者。 out>參數被聲明,但在方法呼叫之前不需要初始化。 >

選出正確的關鍵字>

ref之間的選擇取決於方法的目的:out>

    >使用
  • 修改ref現有物件;此方法不會建立新物件。
  • >使用
  • out建立並傳回一個新物件;此方法負責初始化。

說明範例:

<code class="language-csharp">public void ModifyWithRef(ref MyClass someClass)
{
    someClass.Property1 = 10;
}

public void CreateWithOut(out MyClass someClass)
{
    someClass = new MyClass { Property1 = 20 };
}</code>

>使用ModifyWithRef修改現有someClassref使用CreateWithOut建立和初始化someClass。 注意呼叫這些方法時的初始化需求差異。 out

以上是C# 修改物件的 ref 和 out 關鍵字有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn