Mam problem z przekazaniem anonimowego obiektu jako argumentu w metodzie. Chcę przekazać obiekt jak w JavaScript. Przykład:Przekazywanie obiektu anonimowego jako argumentu w języku C#
function Test(obj) {
return obj.txt;
}
console.log(Test({ txt: "test"}));
Ale w C#, rzuca wiele wyjątków:
class Test
{
public static string TestMethod(IEnumerable<dynamic> obj)
{
return obj.txt;
}
}
Console.WriteLine(Test.TestMethod(new { txt = "test" }));
wyjątkami:
- Argument 1: nie można przekonwertować z 'AnonymousType # 1' do „System.Collections .Generic.Znaczny '
- Najlepsza przeciążona metoda pasująca do ' ConsoleApplication1.Test.TestMethod (System.Collect ions.Generic.IEnumerable) „ ma pewne nieprawidłowe argumenty
- «System.Collections.Generic.IEnumerable»nie zawiera definicję«txt»i żadna metoda rozszerzenie«txt»akceptującą pierwszy argumentu typu” system .Collections.Generic.IEnumerable” można odnaleźć (czy brakuje using dyrektywa lub odwołania do zestawu ?)
Czemu przechodząc anonimowego obiektu do metody, która chce IEnumerable? sprawiają, że akceptuje po prostu "dynamiczny" – GregRos
@GregRos dziękuję, po prostu jestem nowy w językach ściśle napisanych i moje badania pokazują mi to ... – user1091156