Tôi có chuyển đổi rõ ràng được xác định từ loại Bar
để nhập Foo
.IEnumerable <T> .Cast sẽ không hoạt động ngay cả khi một toán tử cast rõ ràng được xác định?
public class Bar
{
public static explicit operator Foo(Bar bar)
{
return new Foo(bar.Gar);
}
}
public class Foo
{
public string Gar { get; set; }
public Foo() { }
public Foo(string gar) { Gar = gar; }
}
Tuy nhiên, khi tôi làm:
using System.Linq;
...
var manyFoos = manyBars.Cast<Foo>();
Nó ném một ngoại lệ nói rằng nó không thể cast.
Làm cách nào để yêu cầu số Cast
sử dụng toán tử truyền của tôi để thử chuyển đổi?
Bạn có 'Bar'->' Foo' chuyển đổi được xác định, nhưng cố gắng làm điều ngược lại. – MarcinJuraszek
Cảm ơn. Xin lỗi, ý tôi là ngược lại. Tôi chỉ cần gõ mã trực tiếp vào trang web mà không cần suy nghĩ quá nhiều. Tôi đã chỉnh sửa. –
Vẫn không chính xác. 'bar.Gar'? Trường hợp nào này đến từ đâu? thanh không có tài sản 'Gar' –