2009-10-08 43 views
48

Ví dụ: System.Net.HttpStatusCode Enum, tôi muốn lấy mã trạng thái HTTP thay vì văn bản trạng thái HTTP. System.Net.HttpStatusCode.Forbidden phải trả về 403 thay vì "Bị cấm".Cách lấy giá trị số từ Enum?

Làm cách nào để trích xuất giá trị?

+0

có thể trùng lặp của [Bắt Http số Status mã (200, 301, 404, vv) từ HttpWebRequest và HttpWebResponse] (http : //stackoverflow.com/questions/1330856/getting-http-status-code-number-200-301-404-etc-from-httpwebrequest-and-ht) –

Trả lời

72

Đối với đa số Enum chỉ đơn giản là truyền đến loại cơ sở là int32.

int value = (int)System.Net.HttpStatusCode.Forbidden; 
+2

ví dụ về một thiểu số không thể đơn giản là gì ? – Jimmy

+4

@Jmymy, bất kỳ enum nào có loại cơ sở khác nhau. Trong những trường hợp đó, bạn chỉ cần truyền đến loại cơ sở thích hợp (uint32, v.v.) ... – JaredPar

+8

Tôi có thể thêm rằng bạn có thể lấy kiểu cơ bản của enum bằng cách sử dụng phương thức Enum.GetUnderlyingType tĩnh (typeof (MyEnum)). – Yoopergeek

16

Bạn chỉ có thể truyền tới số nguyên!

int code = (int)enumVariable 
7

System.Convert.ToInt32 (response.StatusCode) trả về số statusCode

+6

Điều này làm việc khi bạn có enum, nhưng bạn không có loại enum. Ví dụ. 'void DoSomethingWithEnum (Giá trị enum) {int X = Convert.ToInt32 (giá trị); } 'Trong trường hợp này một diễn viên bình thường để int không hoạt động. –

+0

Điều này cũng hoạt động rất tốt nếu enum của bạn là một tham số kiểu chung chung. – Jay

Các vấn đề liên quan