书上的代码,没写全,switch(connectionState2)会一直显示
/使用了没有赋值的局部变量connectionState2/
ConnectionState connectionState;
//...
switch (connectionState)
{
case ConnectionState.Connected:
//...
break;
case ConnectionState.Connecting:
//...
break;
case ConnectionState.Disconnected:
// ...
break;
case ConnectionState.Disconnecting:
//...
break;
}
enum ConnectionState
{
Disconnected,
Connecting,
Connected,
Disconnecting
}
补加一个,两个是一起的是为了显示出使用枚举的话可读性更强,
两者在运行时性能完全一样(改了一下枚举定义的一点问题)。
//比较整数switch和枚举switch
int connectionState;
//...
switch (connectionState)
{
case 0:
//...
break;
case 1:
//...
break;
case 2:
//...
break;
case 3:
//...
break;
}
求使用枚举的switch语句如何调用
在你使用这个枚举之前肯定是要先赋值呀,要不然电脑怎么识别是哪个枚举呢?
如果是方法调用应该是这样的
你可能先需要定义一个全局的:
public ConnectionState2 state=ConnectionState2.Disconnected;
调用的时候:
OnConnectState(state);
void OnConnectState(ConnectionState2 connectionState2 ){
switch (connectionState2)
{
case ConnectionState1.connected:
//...
break;
case ConnectionState1.Connecting:
//...
break;
case ConnectionState1.Disconnected:
// ...
break;
case ConnectionState1.Disconnecting:
//...
break;
}
编写switch case 语句时要写把全部的可能都要写进去。默认未赋值你可以写在default判断分支中。