為什么可以創建一個新物件并將其用作引數而不宣告“pathVariable”?
ExcelPkg.SaveAs(new FileInfo(@"D:\New.xlsx"))
否則,下面的代碼會導致錯誤。為什么?
package.SaveAs(FileInfo pathVariable = new FileInfo(@"D:\New.xlsx"))
uj5u.com熱心網友回復:
您必須問自己的第一個問題是:“什么是變數?” 從技術上講,變數只是存盤已創建物件在堆/堆疊/記憶體中的地址/位置的東西。這很有用,因為您可以通過始終對計算機說“嘿,我需要我以前在這里使用過的那個確切的東西”,從而多次重復使用相同的記憶體中物件。
但是沒有必要重復使用它,是嗎?如果您只需要那個簡短的微/納/毫秒的資料值,您就不必記住把它放在哪里。
把它想象成有盤子。您可以在早餐時使用紙或任何其他一次性使用的盤子,或者使用您放在家中某種櫥柜中的多用盤子(可能)。所以當你想用你最喜歡的盤子做早餐時,你必須知道從哪里得到它。你把它留在水槽里了嗎?有沒有清洗干凈放到柜子里?你把它留在你的辦公桌上了嗎?(當然,“變數”可以代替您回答這個問題)。
那么為什么這不起作用?:
package.SaveAs(FileInfo pathVariable = new FileInfo(@"D:\New.xlsx"))
bacasue 在函式引數中宣告和設定變數是 C# 語法錯誤。變數宣告在函式呼叫中沒有位置。從技術上講,變數定義也沒有。你的例子就是這兩個。
為什么這樣做?
ExcelPkg.SaveAs(new FileInfo(@"D:\New.xlsx"))
因為它和設定一個變數一樣,使用它然后扔掉它,像這樣:
FileInfo someTemporaryVariableNameyouDontEvenHaveToRemember = new FileInfo(@"D:\New.xlsx");
ExcelPkg.SaveAs(someTemporaryVariableNameyouDontEvenHaveToRemember);
//Oh, i don't need it anymore
someTemporaryVariableNameyouDontEvenHaveToRemember=null;
uj5u.com熱心網友回復:
如果在外面的某個地方宣告,您可以分配并使用它作為引數:
FileInfo pathVariable;
package.SaveAs(pathVariable = new FileInfo(@"D:\New.xlsx"))
也為多個:
private void MyMethod()
{
string arg1;
int arg2;
bool arg3;
MyMethod(arg1 = "SomeString", arg2 = 123, arg3 = true);
}
private void MyOtherMethod(string arg1, int arg2, bool arg3)
{
// arg1 will be "SomeString"
// arg2 will be 123
// arg1 will be true
string newArg;
MyVeryOtherMethod(newArg = arg1.Substring(0, 7)); // "SomeStr"
}
private void MyVeryOtherMethod(string arg)
{
// arg will be "SomeStr"
}
我并不是說這是好的做法和正確的用法。這是可能的,也是唯一的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/318010.html
上一篇:如何從PandasUSFederalHolidayCalendar中洗掉特定假期?
下一篇:創建嵌套陣列形成物件陣列
