本帖最后由 bulls5988 于 2011-10-04 16:25:56 编辑

解决方案 »

  1.   

    调不到!稍微学一点入门的设计知识,你写出的代码就可以明确通过使用 m_read 来访问其属性。
      

  2.   

    使用属性访问namespace m_class
    {
        public class read_card
        {
            string card_muns;  
            public string Card_muns
            {
                get{return card_muns;}
                set{card_muns = value;}
            }        public void read_cards() 
            {
                int card_result = DLL_Open.Init_com("1,9600,N,8,1");            switch (card_result)
                {
                    case 0:
                        MessageBox.Show("通讯失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    case 1:
                        break;
                    case -1:
                        MessageBox.Show("串口打开失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    case -3:
                        MessageBox.Show("串口设置错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                }
                DLL_Open.sele_exp_port(1, 'b');
                StringBuilder rdatas = new StringBuilder(300);
                int result = DLL_Open.Rcard(rdatas, 2);
                switch (result)
                {
                    case 1:
                        card_muns = rdatas.ToString().Substring(0, 10);
                        break;
                    case -1:
                        MessageBox.Show("所选串行口打不开!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    case -3:
                        MessageBox.Show("串口设置错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    case -4:
                        MessageBox.Show("读卡错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    case -6:
                        MessageBox.Show("刷卡超时!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    case -8:
                        MessageBox.Show("读卡器与主机连接错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    case -42:
                        MessageBox.Show("第二磁道读卡错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                }
            }
        }
      

  3.   

    可以调用,只要把变量设置为public就可以,
      

  4.   

    我现在 实例化之后 给赋值textbox1 提示错误 VOID型无法转化成String型数据 怎么办啊?
      

  5.   

    read_card m_read = new read_card();
    textbox1.text = m_read.read_cards();提示我VOID和STRING类型不能转换;  
      

  6.   


    public string read_cards()
    {
    .............
       return card_muns;
      

  7.   

    变量出{}这个大括号 就会死掉的.
    想拿到一个类的东西,就只能拿属性(还得是public的)别和我说还有.....的,我只是打个比方
    在出{}之前,把你想要的变量给你这个class 建一个属性,之后给这个属性赋值,
    这样你要的结果可以通过这个属性来拿到.但貌似基本没有这么干的(很垃圾的做法好像)当然在你new这个类的时候,这个属性为null的.
    当然还有一种就是返回值,你返回void改成你想要的也可以比如int string...
    这样在你方法完之后 可以带返回值出来.
    先了解一下再做喽...
    我也是很菜的鸟...我想慢慢会好的.
      

  8.   

    看完表示压力很大……建议LZ先按课本上的例子敲下再做实际的东东。这些都是基础中的基础好吧。
    关于访问极限修饰符:
    private   私有,只能从类的内部访问,从类外部访问不能。
    protected 只能从类及其子类的内部访问。
    internal  只能在同一程序集内访问。
    public    可以从任意位置访问。
    C#的默认修饰符(不加访问修饰符的情况)为private。关于方法返回值只要看了书估计没人不会的,LZ是连书都没看吧(汗~~)