//参数Num为需要转换的数,n为该数的进制
public string ToD(string Num,int n)
{
  char[] nums=Num.ToCharArray();
  int d=0;
  for(inti=0;i<nums.Length;i++)
  {
    string number=nums[i].ToString();
    if(n==16)
    {
      switch(number.ToUpper())
      {
        case"A":
          number="10";
          break;
        case"B":
          number="11";
          break;
        case"C":
          number="12";
          break;
        case"D":
          number="13";
          break;
        case"E":
          number="14";
          break;
        case"F":
          number="15";
          break;
      }
    }
    Doublepower=Math.Pow(Convert.ToDouble(n),Convert.ToDouble(nums.Length-(i+1)));
    d=d+Convert.ToInt32(number)*Convert.ToInt32(power);
  }
  return d.ToString();
}
这个函数如何调用呢?
int i;
i=TOD(e8,16);
结果说上下文中不存在e8
把e8改成0xe8 又报错说 1:tod(string,int)最匹配的重载方法具有一些无效参数
                      2:参数“1”无法从“int”转换为“string”
请问前辈们 我该如何调用这个函数?

解决方案 »

  1.   


    public string ToD(string Num, int n)
            {
                char[] nums = Num.ToCharArray();
                int d = 0;
                for (int i = 0; i < nums.Length; i++)
                {
                    string number = nums[i].ToString();
                    if (n == 16)
                    {
                        switch (number.ToUpper())
                        {
                            case "A":
                                number = "10";
                                break;
                            case "B":
                                number = "11";
                                break;
                            case "C":
                                number = "12";
                                break;
                            case "D":
                                number = "13";
                                break;
                            case "E":
                                number = "14";
                                break;
                            case "F":
                                number = "15";
                                break;
                        }
                    }
                    Double Doublepower = Math.Pow(Convert.ToDouble(n), Convert.ToDouble(nums.Length - (i + 1)));
                    d = d + Convert.ToInt32(number) * Convert.ToInt32(Doublepower);
                }
                return d.ToString();
            }
           
           //调用
            private void button1_Click(object sender, EventArgs e)
            {
               string i = ToD("e8", 16);
            }
      

  2.   

    你调用的不对,这个函数返回的是String类型,你定义的i是 Int类型
      

  3.   

    int i;
    i=Convert.ToInt32(TOD(这里传String类型参数啊,16));
      

  4.   

    string  i;
    i=TOD(这里传string类型参数啊,16);
      

  5.   

    public string ToD(string Num,int n){}
    如果你要转换256为8进制的,可以这样调用,ToD("256",8)就可以了,你把参数的意义弄明白了就好调用了
      

  6.   

    记住重要的一点,只有整型(如int),浮点型(如float)不用加引号,其它的参数差不多都要加引号的
      

  7.   

    函数返回的是String ,i为int型的 当然不能调用
      

  8.   

    把你的
    int i;
    i=TOD(e8,16);改成string i;
    i=TOD(e8,16);