private unsafe void button1_Click(object sender, EventArgs e)
        {
      string money=label1.Text;
      money = label1.Text;       
      checksum5(money);         
        }
        unsafe  char checksum5(char* wert)
        {
            char[] tab_gew_2m ={ '0', '2', '4', '6', '8', '9', '1','3', '5', '7' };
            char[] tab_gew_5p ={ '0', '5', '1', '6', '2', '7', '3', '8', '4', '9' };
            char[] tab_gew_5m ={ '0', '5', '9', '4', '8', '3', '7', '2', '6', '1' };
            char[] tab_gew_5m_inv ={'0','9','7','5','3','1','8','6','4','2'};
            char checksum;
            int n;
          
             checksum = tab_gew_5p[*(wert++) - 0x30];//把字符转化成数字
         checksum += tab_gew_2m[*(wert++) - 0x30];
         checksum += tab_gew_5m[*(wert++) - 0x30];
         checksum += tab_gew_5p[*(wert++) - 0x30];
         checksum += tab_gew_2m[*wert - 0x30];
            n=(10-(checksum%10))%10;
            checksum = tab_gew_5m_inv[n];
          
            return checksum;
        }  checksum5(money);调用时,老是报无法从“string”转换为“char*”请问应该如何调用呢.谢谢

解决方案 »

  1.   

    string money=label1.Text;
          money = label1.Text;   
    fixed(char* moneyPtr= money)
    {
        checksum5(moneyPtr); 
    }string是托管堆中的对象所以你要fix住才能使用
      

  2.   

    谢谢!我想把checksum5(moneyPtr); 这个字符的值,想把它赋值给textbox1.text呢?textbox1.text=checksum5(moneyPtr);   好象是错的.
      

  3.   

    textbox1.Text = new string(checksum5(moneyPtr));
      

  4.   

    用了楼上的方法,但提示出错
    : 与“string.String(char*)”最匹配的重载方法具有一些无效参数
    错误 CS1503: 参数“1”: 无法从“char”转换为“char*”
      

  5.   

    checksum5 返回是char啊,那直接.ToString()就行了
      

  6.   

         fixed (char* moneyPtr = money)
             {
                 char n = checksum5(moneyPtr);
                 textBox1.Text = n.ToString;
                 
                
             }
               无法将方法组“ToString”转换为非委托类型“string”。您是要调用方法吗?
      

  7.   

    不要把c# 当成c++ 
    c++ 里 char* 就是字符数组, C# char* 指的是一个字符的指针 
      

  8.   

         fixed (char* moneyPtr = money)
             {
                char n = checksum5(moneyPtr);
                 string m=n.ToString;
                 textBox1.Text = m;
                 
                
             }
               
    提示:无法将方法组“ToString”转换为非委托类型“string”。您是要调用方法吗?
      

  9.   

    大哥Tostring是方法啊你要有()啊
    n.ToString()