Anonim nesneyi bir yöntemde argüman olarak geçirme konusunda bir sorunum var. Nesneyi JavaScript’te olduğu gibi geçmek istiyorum. Örnek:Anonim bir nesneyi bağımsız değişken olarak geçirme C#
class Test
{
public static string TestMethod(IEnumerable<dynamic> obj)
{
return obj.txt;
}
}
Console.WriteLine(Test.TestMethod(new { txt = "test" }));
İstisnalar:
- Tartışma 1: için 'AnonymousType 1.' dan dönüştürmek olamaz 'System.Collections
function Test(obj) { return obj.txt; } console.log(Test({ txt: "test"}));
Ama C#
, birçok istisnalar atar .Generic.IEnumerable ' - ' ConsoleApplication1.Test.TestMethod (System.Collect) için en iyi aşırı yüklenmiş yöntem eşleşmesi ions.Generic.IEnumerable) txt 've uzatma yöntemi 'txt' türü bir birinci argüman kabul 'için tanımlama içermez' System.Collections.Generic.IEnumerable' bir geçersiz değişkenler
- bulunur Sistemi .Collections.Generic.IEnumerable' bulunamadı (bir kullanarak emrini veya bir derleme başvurusu eksik?) istediğin gibi görünüyor
Neden IEnumerable isteyen bir yönteme anonim nesne geçiyoruz? Sadece 'dinamik' – GregRos
@ GregRos kabul ediyorum, sadece ben şiddetle yazılan dillerinde yeni ve araştırmalarım bana şunu gösteriyor ... – user1091156