C# out ref 用法总结
生活随笔
收集整理的這篇文章主要介紹了
C# out ref 用法总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C#里面的 out 和ref參數時常會用到,但對它們的區別比較模糊。所以總結一下。下面是測試代碼:
public void Start()
{
//outSum沒必要賦值,賦值了也完全沒用。
//如果AddByOut函數內部直接使用out對應的參數,會報錯:使用了未被賦值的 out 參數a
int outSum = ;
int ov1 = ;
int ov2 = ;
AddByOut(out outSum, ov1, ov2);
Console.WriteLine("outSum : " + outSum + " v1: " + ov1 + " v2: " + ov2); //refSum 必須賦值
int refSum = ;
int rv1 = ;
int rv2 = ;
//如果refSum沒有賦值,這里會報錯:使用了未賦值的局部變量 refSum
AddByRef(ref refSum, rv1, rv2);
Console.WriteLine("refSum : " + refSum + " v1: " + rv1 + " v2: " + rv2);
} public void AddByOut(out int a, int b, int c)
{
//a = a + b + c;// a 未被賦值,不能直接使用,即使是調用的地方 out對應的參數初始化也沒用
a = b + c;
} public void AddByRef(ref int a, int b, int c)
{
a = a + b + c; // 可以直接使用a
}
測試結果:
總結: 1、調用帶ref關鍵字的函數,必須對 ref 對應的參數賦值;而out關鍵字不需要。
2、帶ref 關鍵字的函數內部可以直接使用 ref 對應的參數;out 關鍵字的函數,必須在函數內部對out對應的參數賦值后才能使用。
(歸結1,2點:ref在外面初始化,out在里面初始化)
3、兩個關鍵字都能使值類型按引用類型使用,即修改了函數外部申明的變量
注:更多專業介紹請參考微軟官方文檔
out 參數修飾符(C# 參考) https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/out-parameter-modifier
ref(C# 參考) https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/ref
總結
以上是生活随笔為你收集整理的C# out ref 用法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 14款奥迪q3可以投屏导航吗?
- 下一篇: 初识Polymer框架