Как передать один объект [] объекту params []
Модификатор параметра params
дает arrays вызывающей стороне сокращенный csharp синтаксис для передачи нескольких javascript-array аргументов в метод. Есть array два способа вызвать метод visual-c# с параметром params
:
1) Вызов с массивом c#-language типа параметра, в этом случае arrays ключевое слово params
не действует javascript-array и массив передается напрямую c# в метод:
object[] array = new[] { "1", "2" };
// Foo receives the 'array' argument directly.
Foo( array );
2) Или вызов с расширенным bytearray списком аргументов, и в этом csharp случае компилятор автоматически string-array поместит список аргументов c#-language во временный массив и передаст c#-language его методу:
// Foo receives a temporary array containing the list of arguments.
Foo( "1", "2" );
// This is equivalent to:
object[] temp = new[] { "1", "2" );
Foo( temp );
Чтобы передать javascript-array массив объектов в метод с javascript-array параметром "params object[]
", вы string-array можете:
1) Создайте массив-оболочку .cs-file вручную и передайте его непосредственно array методу, как указано lassevk:
Foo( new object[] { array } ); // Equivalent to calling convention 1.
2) Или swift-array приведите аргумент к object
, как c# указано в Adam, и в этом случае c#.net компилятор создаст для вас c#.net массив-оболочку:
Foo( (object)array ); // Equivalent to calling convention 2.
Однако, если array целью метода является обработка static-array нескольких массивов объектов, может .cs-file быть проще объявить его с .cs-file явным параметром "params object[][]
". Это static-array позволит вам передавать несколько character-arrays массивов в качестве аргументов:
void Foo( params object[][] arrays ) {
foreach( object[] array in arrays ) {
// process array
}
}
...
Foo( new[] { "1", "2" }, new[] { "3", "4" } );
// Equivalent to:
object[][] arrays = new[] {
new[] { "1", "2" },
new[] { "3", "4" }
};
Foo( arrays );
Изменить: Рэймонд csharp Чен описывает это поведение array и его связь со спецификацией csharp C# в a new post.
c#
arrays
Как передать один объект [] объекту params []
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.