none
VB轉C#疑問 RRS feed

  • 問題

  • Public FINS_MSComm As AxMSCommLib.AxMSComm         
        Public FINS As SEND_FINS                 **************************     
        Public Structure FINS_Header
            Dim MsComm_Header As String
            Dim ICF As String
            Dim RSV As String
            Dim GCT As String
            Dim DNA As String
            Dim DA1 As String
            Dim DA2 As String
            Dim SNA As String
            Dim SA1 As String
            Dim SA2 As String
            Dim Str As String
        End Structure
        Public Structure FINS_SID
            Dim Read_Word As String
            Dim Write_Word As String
            Dim Read_HR_Word As String
            Dim Read_Bit As String
            Dim Write_Bit As String
            Dim Status As String
            Dim Change As String
            Dim Multiple_R As String
        End Structure
        Public Structure FINS_Command
            Dim Read_Cmd As String
            Dim Write_Cmd As String
            Dim Change_Status As String
            Dim Status As String
            Dim Multiple_R As String
        End Structure
        Public Structure FINS_Code
            Dim CIO_Bit As String
            Dim CIO_Word As String
            Dim WR_Bit As String
            Dim WR_Word As String
            Dim HR_Bit As String
            Dim HR_Word As String
            Dim AR_Bit As String
            Dim AR_Word As String
            Dim DM_Bit As String
            Dim DM_Word As String
            Dim EM_00_Bit As String
            Dim EM_00_Word As String
        End Structure
        Public Structure SEND_FINS     **********************************
            Dim Header As FINS_Header
            Dim Command As FINS_Command
            Dim Code As FINS_Code
            Dim SID As FINS_SID
        End Structure
    ---------------------------------------------------------------------------------------------------
    想請問*的地方 ~  事先宣告SEND_FINS的方法,並引用上列的方法    這是類似 C#的enum 嗎???  請指教 ~ 
    2011年10月28日 上午 02:12

解答

所有回覆

  • 不是,那個就是C#的struct吧

    請參考:

    1. Structure 陳述式
    2. struct (C# 參考)

    常用資源參考:
    小弟的blog: In 91,wiki: my wiki
    2011年10月28日 上午 02:25
  • 把你的 code 丟到以下網址,轉換成 C#,再搭配 91 前輩的說明去看

    http://www.developerfusion.com/tools/convert/csharp-to-vb/

            public AxMSCommLib.AxMSComm FINS_MSComm;
            public SEND_FINS FINS;
            public struct FINS_Header
            {
                public string MsComm_Header;
                public string ICF;
                public string RSV;
                public string GCT;
                public string DNA;
                public string DA1;
                public string DA2;
                public string SNA;
                public string SA1;
                public string SA2;
                public string Str;
            }
    
    
            public struct FINS_SID
            {
                public string Read_Word;
                public string Write_Word;
                public string Read_HR_Word;
                public string Read_Bit;
                public string Write_Bit;
                public string Status;
                public string Change;
                public string Multiple_R;
            }
    
    
            public struct FINS_Command
            {
                public string Read_Cmd;
                public string Write_Cmd;
                public string Change_Status;
                public string Status;
                public string Multiple_R;
            }
    
            public struct FINS_Code
            {
                public string CIO_Bit;
                public string CIO_Word;
                public string WR_Bit;
                public string WR_Word;
                public string HR_Bit;
                public string HR_Word;
                public string AR_Bit;
                public string AR_Word;
                public string DM_Bit;
                public string DM_Word;
                public string EM_00_Bit;
                public string EM_00_Word;
            }
    
    
            public struct SEND_FINS
            {
                public FINS_Header Header;
                public FINS_Command Command;
                public FINS_Code Code;
                public FINS_SID SID;
            }
    


    歡迎參觀我的Blog.NET菜鳥自救會
    2011年10月28日 上午 02:38
    版主
  • 明白了 原來是結構 感謝前輩提醒 ~
    2011年10月28日 上午 02:52
  • 在請教一下

     

    public AxMSCommLib.AxMSComm FINS_MSComm;

    是不是可以用c# 的 serialpPort  類別來代替   ~

     

    2011年10月28日 上午 02:54
  • 嗯,那個是VB6的MMComm物件吧!
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2011年10月28日 上午 04:52
  • 不要在 .Net 使用 VB6 的控制項。因為:

    1. .Net 不具有 VB6 專業版控制項的散佈權。

    2. .Net 記憶體模型與 VB6 使用 Variant 通用型別不同,因此結構與參考型別都可能發生問題,可能會產生無法偵錯的問題。

    3. VB 的控制項不支援多緒的記憶體模型,與 .Net 多緒基礎架構產生衝突。

     

    請改用 .Net 內建的 SerialPort 來使用。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年10月28日 下午 03:32