簡體   English   中英

如何在C#Azure函數中將多個參數作為數組傳遞?

[英]How to pass multiple parameters as an array in a C# Azure Function?

我正在將我們的node.js Azure函數之一移植到C#,所以這是在.csx容器中運行的C#。 我在本地Windows Function仿真器中運行,並且還在Azure的Functions運行時中嘗試過此操作,兩者均顯示相同的編譯器錯誤。

我已經看到多個 其他 問題,他們提出了類似的要求,但是在.csx文件或函數運行時中運行似乎有所不同,因為這些答案均無效。

這是我正在調用的方法簽名:

DocumentClient.ExecuteStoredProcedureAsync<TValue> Method (Uri, Object[])

這是來自run.csx的工作代碼:

string param1 = "param1";
string param2 = "param2";

// object[] params = {"param1", "param2"};

var response = await client.ExecuteStoredProcedureAsync<object>(
  sprocUri,
  param1,
  param2
);

當我嘗試將兩個參數添加到數組中並取消注釋時,行object[] params = {"param1", "param2"}; 然后我從編譯器得到此錯誤:

run.csx(72,14): error CS1001: Identifier expected
run.csx(72,14): error CS1003: Syntax error, ',' expected
run.csx(72,21): error CS1002: ; expected
run.csx(72,21): error CS1525: Invalid expression term '='
run.csx(72,23): error CS1525: Invalid expression term '{'
run.csx(72,23): error CS1002: ; expected
run.csx(72,32): error CS1002: ; expected
run.csx(72,32): error CS1513: } expected
run.csx(72,42): error CS1002: ; expected
Compilation failed.

(第72行對應於數組賦值語句)

我嘗試了所有這些不同的方法來定義數組,但是每種方法我都遇到類似的錯誤:

Object[] params = {"param1", "param2"};
object[] params = new[] {"param1", "param2"};
object[] params = new[] {param1, param2};
string[] params = {"param1", "param2"};
string[] params = new string[] {"param1", "param2"};
dynamic[] params = new[] {"param1", "param2"};

需要使用不同樣式的數組定義的Azure函數是否有所不同? C#開發人員參考》中沒有提及數組。

您面臨的問題是您將變量params命名為C#中的保留字(請參閱params(C#參考) )。 嘗試使用其他名稱。

如果您真的願意使用params ,則可以使用@前綴(可以在C#中使用)創建標識符,否則它將是保留字:

object[] @params = { param1, param2 };

暫無
暫無

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

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