PDA

View Full Version : مشکل در کار با Enum



uniqueboy_ara
یک شنبه 03 دی 1391, 12:53 عصر
سلام دوستان
من یه مشکل اعصاب خورد کن با enum ها پیدا کردم
از این کد برای بررسی اتصال به اینترنت استفاده می کنم، که در نهایت وضعیت رو داخل یه متغییر int میریزه و با توجه به enum که نوشته شده، باید از روی کد، مقدار رشته ای رو بفهمم
اما چجوری؟؟؟

[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);

public bool IsConnected()
{
int Desc;
if (InternetGetConnectedState(out Desc, 0))
{ return true; }
else
{return false;}

Result = Desc;
}

enum ConnectionStates
{
Modem = 0x1,
LAN = 0x2,
Proxy = 0x4,
RasInstalled = 0x10,
Offline = 0x20,
Configured = 0x40,
}

gwbasic
یک شنبه 03 دی 1391, 13:37 عصر
برای تبدلیل Description به ConnectionStates یعنی int به enum از کد زیر استفاده کنید:

ConnectionStates state = (ConnectionStates)Description;

در این حالت با استفاده از state که از جنس enum شما هست می تونید وضعیت رو تشخیص بدین.
جهت جهت عملکرد بهتر Flags رو روی enum قرار بدید.

[Flags]
enum ConnectionStates
{
Modem = 0x1,
LAN = 0x2,
Proxy = 0x4,
RasInstalled = 0x10,
Offline = 0x20,
Configured = 0x40,
}