亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求解,請問.net前面的參數out指的是什么?

求解,請問.net前面的參數out指的是什么?

慕的地6264312 2021-11-18 15:11:42
.net前面的參數out指的是什么?
查看完整描述

2 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

這是一個引用傳遞L。原則一:當一個方法(函數)在使用out作為參數時,在方法中(函數)對out參數所做的任何更改都將反映在該變量中。
原則二:當希望方法返回多個值時,聲明 out 方法非常有用。使用 out 參數的方法仍然可以返回一個值。一個方法可以有一個以上的 out 參數。
原則三:若要使用 out 參數,必須將參數作為 out 參數顯式傳遞到方法。out 參數的值不會傳遞到 out 參數。
原則四:不必初始化作為 out 參數傳遞的變量,因為out 參數在進入方法(函數)時后清空自己,使自己變成一個干凈的參數,也因為這個原因必須在方法返回之前為 out 參數賦值(只有地址沒有值的參數是不能被.net接受的)。
原則五:屬性不是變量,不能作為 out 參數傳遞。
原則六:如果兩個方法的聲明僅在 out 的使用方面不同,則會發生重載。不過,無法定義僅在 ref 和 out 方面不同的重載。例如,以下重載聲明是有效的:
class MyClass
{
public void MyMethod(int i) {i = 10;}
public void MyMethod(out int i) {i = 10;}
}
而以下重載聲明是無效的:
class MyClass
{
public void MyMethod(out int i) {i = 10;}
public void MyMethod(ref int i) {i = 10;}
}



查看完整回答
反對 回復 2021-11-23
?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

out 關鍵字會導致參數通過引用來傳遞。這與 ref 關鍵字類似,不同之處在于 ref 要求變量必須在傳遞之前進行初始化。若要使用 out 參數,方法定義和調用方法都必須顯式使用 out 關鍵字。例如:class OutExample
{
static void Method(out int i)
{
i = 44;
}
static void Main()
{
int value;
Method(out value);
// value is now 44
}

盡管作為 out 參數傳遞的變量不需要在傳遞之前進行初始化,但需要調用方法以便在方法返回之前賦值。

ref 和 out 關鍵字在運行時的處理方式不同,但在編譯時的處理方式相同。因此,如果一個方法采用 ref 參數,而另一個方法采用 out 參數,則無法重載這兩個方法。但是,如果一個方法采用 ref 或 out 參數,而另一個方法不采用這兩類參數,則可以進行重載。

示例:

當希望方法返回多個值時,聲明 out 方法很有用。使用 out 參數的方法仍然可以將變量用作返回類型(請參見 return),但它還可以將一個或多個對象作為 out 參數返回給調用方法。此示例使用 out 在一個方法調用中返回三個變量。請注意,第三個參數所賦的值為 Null。這樣便允許方法有選擇地返回值。

class OutReturnExample
{
static void Method(out int i, out string s1, out string s2)
{
i = 44;
s1 = "I've been returned";
s2 = null;
}
static void Main()
{
int value;
string str1, str2;
Method(out value, out str1, out str2);
// value is now 44
// str1 is now "I've been returned"
// str2 is (still) null;
}
}



查看完整回答
反對 回復 2021-11-23
  • 2 回答
  • 0 關注
  • 604 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號