簡體   English   中英

C#我想用out參數傳遞一個函數,不能使用數據類型void?

[英]C# I thought to pass a function using the out parameter, data type void couldn't be used?

所以在我的 c# 課程測驗中,問題之一是

您將如何聲明一個需要調用代碼修改輸入參數原始內容的函數?

出於某種原因,答案是

虛空之謎(出雙線索)

我想使用 out 參數必須使用與變量相同的數據類型? 所以像這樣

雙謎(出雙線索)

因此,讓我們考慮以下偽代碼:

R foo(T)

該函數接收類型為 T 的東西作為輸入參數。 它還返回 R 類型的結果。在您的測驗中,問題是關於 T。因此,讓 foo() 修改輸入參數 T 的唯一方法是在 T 周圍添加特殊簽名:

R foo1(out T t) {...}
R foo2(ref T t) {...}

嗯,實際上有兩種方法可以做到這一點,你明白嗎? 區別在於: foo1 可以接受未初始化的值,然后在 foo1() 代碼中將它們設置為正確的值。 但是,foo2 要求在調用 foo2() 之前初始化參數。 因為空值不能被引用,因此不能被修改。

而且,正如 Hans Kesting 在下面的評論中所強調的那樣,“out”意味着“需要調用代碼修改輸入參數的原始內容”。 所以,就是這樣。

有關更多詳細信息,請參閱這些鏈接:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM