[英]Pass Method ( of void return type and with no input arguments) as parameter using C#
[英]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.