DOBON.NET DOBON.NETプログラミング掲示板過去ログ

select文の評価について

環境/言語:[XP]
分類:[.NET]

はじめまして

XP+vb2005で開発しています。

SELECT文の評価について教えてください。
最初に列挙型で
Public Enum OutputType
            DEBUG       
            FILE        
            NULL        
        End Enum
と宣言し、
XMLから値を取得し、
        '設定内容をメンバ変数にセット
         Select Case logOutputMode
            Case "DEBUG"
                _MyOutputType = OutputType.DEBUG
            Case "FILE"
                _MyOutputType = OutputType.FILE
            Case Else
                _MyOutputType = OutputType.NULL
            End Select
というふうに変数にセットしています。ここでかりにDEBUGとすると
_MyOutputType = OutputType.DEBUG

がセットされるわけですが、このあと

      Select Case _MyOutputType
→ここからCase OutputType.DEBUG
            'デバッグを指定した場合は、コンソールに出力するのみ。
            System.Diagnostics.Debug.Print(LogFormatter(logEntry))
         Case OutputType.FILE
        select case MSG
              case A   
                 msgbox("A")
              case else
                 file.FileName=l ogFilePath+ "ERROR_"+  fileName
                 file.OpenWriteFile()
                 file.Write(LogFormatter(logEntry))
                 file.Close()
    →ここに飛ぶ file = Nothing

            END SELECT

      END SELECT
とすると、OutputType.DEBUG と一致せず、
→の部分に飛んでしまいます。
また、
********************************************************
           'デバッグを指定した場合は、コンソールに出力するのみ。
            System.Diagnostics.Debug.Print(LogFormatter(logEntry))
**********************************************************
にブレイクポイントをおくことも出来ません。
なぜこういうつくりにしているかといえば、
参考にしたのがそうなってたからですが、
何かおかしいことをしてますでしょうか?

ご教授いただければ幸いです。
■No22843に返信(ryuさんの記事)
> はじめまして
>
> XP+vb2005で開発しています。
>
> SELECT文の評価について教えてください。
> 最初に列挙型で
> Public Enum OutputType
> DEBUG
> FILE
> NULL
> End Enum
> と宣言し、
> XMLから値を取得し、
> '設定内容をメンバ変数にセット
> Select Case logOutputMode
> Case "DEBUG"
> _MyOutputType = OutputType.DEBUG
> Case "FILE"
> _MyOutputType = OutputType.FILE
> Case Else
> _MyOutputType = OutputType.NULL
> End Select
> というふうに変数にセットしています。ここでかりにDEBUGとすると
> _MyOutputType = OutputType.DEBUG
>
> がセットされるわけですが、このあと
>
> Select Case _MyOutputType
> →ここからCase OutputType.DEBUG
> 'デバッグを指定した場合は、コンソールに出力するのみ。
> System.Diagnostics.Debug.Print(LogFormatter(logEntry))
>  Case OutputType.FILE
>       select case MSG
> case A   
> msgbox("A")
> case else
> file.FileName=l ogFilePath+ "ERROR_"+ fileName
> file.OpenWriteFile()
> file.Write(LogFormatter(logEntry))
> file.Close()
> →ここに飛ぶ file = Nothing
>
> END SELECT
>
> END SELECT
> とすると、OutputType.DEBUG と一致せず、
> →の部分に飛んでしまいます。
> また、
> ********************************************************
> 'デバッグを指定した場合は、コンソールに出力するのみ。
> System.Diagnostics.Debug.Print(LogFormatter(logEntry))
> **********************************************************
> にブレイクポイントをおくことも出来ません。
> なぜこういうつくりにしているかといえば、
> 参考にしたのがそうなってたからですが、
> 何かおかしいことをしてますでしょうか?
>
> ご教授いただければ幸いです。

解決しました。お騒がせしました
解決済み!
「書き込みのルールについて」にあるように、お手数ですが、自己解決されたときでもどのようにして解決されたのかをご報告ください。もし「書き込みのルールについて」をお読みでなければ、まずはそちらをお読みください。よろしくお願いいたします。
■No22858に返信(管理人さんの記事)
> 「書き込みのルールについて」にあるように、お手数ですが、自己解決されたときでもどのようにして解決されたのかをご報告ください。もし「書き込みのルールについて」をお読みでなければ、まずはそちらをお読みください。よろしくお願いいたします

失礼しました。
サンプルにはないのですが、
VB2005の出力画面に出力するため、以下のソースを記述していました。
System.Diagnostics.Debug.Print("A")

このソースが悪さをしていたようで、挙動が変になっていることがわかりました。
そこでlog4netに出力画面にログをはくことで回避しようとしています。

*log4netでうまくいっていませんが・・・

このselect文の問題に関しては解決としています。
以上です。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板