Tôi gặp sự cố khi chuyển đối tượng ẩn danh làm đối số trong phương thức. Tôi muốn truyền đối tượng như trong JavaScript. Ví dụ:Truyền đối tượng ẩn danh làm đối số trong C#
function Test(obj) {
return obj.txt;
}
console.log(Test({ txt: "test"}));
Nhưng trong C#, nó ném nhiều ngoại lệ:
class Test
{
public static string TestMethod(IEnumerable<dynamic> obj)
{
return obj.txt;
}
}
Console.WriteLine(Test.TestMethod(new { txt = "test" }));
Exceptions:
- Đối số 1: không thể chuyển đổi từ 'AnonymousType # 1' để 'System.Collections .Generic.IEnumerable '
- Kết hợp phương pháp quá tải tốt nhất cho ' ConsoleApplication1.Test.TestMethod (System.Collect ions.Generic.IEnumerable) ' có một số đối số không hợp lệ
- 'System.Collections.Generic.IEnumerable' không chứa một định nghĩa cho 'txt' và không có phương pháp mở rộng 'txt' chấp nhận một số đầu tiên của loại' Hệ thống .Collections.Generic.IEnumerable' thể được tìm thấy (là bạn thiếu một chỉ thị sử dụng hoặc tham khảo một hội ?)
Tại sao các bạn đi qua một đối tượng vô danh đến một phương pháp mà muốn IEnumerable? làm cho nó chấp nhận chỉ 'động' – GregRos
@GregRos cảm ơn bạn, chỉ là tôi mới trong ngôn ngữ gõ mạnh mẽ và nghiên cứu của tôi cho tôi thấy điều này ... – user1091156