私はnode.js Azure関数のいずれかをC#に移植しています。したがって、これはC#で、.csxコンテナで実行されています。私は、ローカルのWindows関数エミュレータで実行しているし、これもAzureの関数ランタイムで試したが、どちらも同じコンパイラエラーを示しています。C#Azure関数で複数のパラメータを配列として渡す方法は?
multipleotherquestions何か似たようなことを聞いてきましたが、答えが出ないので、.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
);
私は配列に2つのparamsを追加しようとすると
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.
(ライン:その後、私は、コンパイラからこのエラーを取得する行のコメントを外しobject[] params = {"param1", "param2"};
配列代入文の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# Developer Referenceの配列については何も言及されていません。
をおかげで、私はそれを変更しましたargsとそれは今完全に動作します。 – Graham
好奇心から、メソッド呼び出しでオブジェクト配列の代わりにArrayListを使用する秘密はありますか? – Graham
@Grahamいいえ、それは同じでなければなりません: 'var args = new ArrayList {param1、param2};' - メソッドが 'ArrayList'を引数として取る限り、もちろんです。 'ArrayList'といえば、それはあなたがC#やレガシーコードの最初のバージョンを過ぎて見ないクラスです。 'List