Tôi có một enum có 4 giá trị:Đúc một mảng các số nguyên tới một mảng của enums
public enum DriveRates
{
driveSidereal = 0,
driveLunar = 1,
driveSolar = 2,
driveKing = 3
}
Tôi có một mảng các giá trị mà tôi muốn truyền tới một mảng của DriveRates. Tuy nhiên khi tôi làm var rates = (DriveRates[])ret;
, với ret
là một mảng đối tượng số (có thể là số nguyên), nó nói Unable to cast object of type 'System.Object[]' to type 'ASCOM.DeviceInterface.DriveRates[]'.
ret
= {0,1,2,3}
. Làm thế nào tôi nên làm điều này để thay thế. Một lần nữa, tôi đang cố gắng chuyển đổi một mảng các giá trị enum thành một mảng enum ... well, values :) Nhưng tôi đang cố gắng chuyển đổi từ loại object[]
thành loại DriveRates[]
.
Hmm ... Vâng, đó là một mảng của các đối tượng. Rõ ràng một mảng các đối tượng không thể được chuyển đổi thành một mảng các int. –
@ArlenBeiler: Vâng, nó có thể được chuyển đổi thành mảng * mới * - nhưng mảng * hiện tại * không thể được xử lý như một mảng int, vì chúng có các biểu diễn khác nhau. –
Điều đáng chú ý là ngay cả các toán tử 'is' và' as' có thể bị lẫn lộn với các loại mảng enum, hãy xem đoạn mã cuối cùng tại http://stackoverflow.com/a/21186137/717732 - cả ba kiểm tra đều nói 'true' , trong khi '.GetType()' tất nhiên nói không. – quetzalcoatl