_rivulet 2022-05-09 22:57 采纳率: 66.7%
浏览 95
已结题

C# 在switch中调用枚举

书上的代码,没写全,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语句如何调用

  • 写回答

2条回答 默认 最新

  • 周周的Unity小屋 Unity3D领域优质创作者 2022-05-09 23:09
    关注

    在你使用这个枚举之前肯定是要先赋值呀,要不然电脑怎么识别是哪个枚举呢?
    如果是方法调用应该是这样的

    你可能先需要定义一个全局的:
    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;
    }

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月10日
  • 修改了问题 5月10日
  • 修改了问题 5月10日
  • 创建了问题 5月9日