public Inner_POS m_Pos1;
public Inner_POS m_Pos2;public POSBin(Inner_POS pos1, Inner_POS pos2)
{
            this.m_Pos1 = pos1;
            this.m_Pos2 = pos2;
            this.m_HashCode = (int) ((pos1 * ((Inner_POS) 0x40)) + pos2);
}这段代码中 最后一行报错: 运算符“*”无法应用于“Inner_POS”和“Inner_POS”类型的操作数 
Inner_POS 是一枚举类型 
public enum Inner_POS
    {
        POS_UNK,
        POS_D_K,
        POS_D_H,
        POS_A_NZ,
        POS_A_NX,
        POS_A_NT,
        POS_A_NS,
        POS_A_NR,
        POS_D_Z,
        POS_D_Y,
        POS_D_X,
        POS_D_W,
        POS_D_V,
        POS_D_U,
        POS_D_T,
        POS_D_S,
        POS_D_R,
        POS_A_Q,
        POS_D_P,
        POS_D_O,
        POS_D_N,
        POS_D_MQ,
        POS_A_M,
        POS_D_L,
        POS_D_I,
        POS_D_F,
        POS_D_E,
        POS_D_D,
        POS_D_C,
        POS_D_B,
        POS_D_A
    }如何修正?????(他人代码)

解决方案 »

  1.   

    pos1 * ((Inner_POS) 0x40这些要转换为数字类型才能算数运算吧。不知道枚举类型可以吗?
      

  2.   

    Inner_POS 就是上边定义的这个类型我感觉也是得转成数字类型
      

  3.   

    Inner_POS 没有选取枚举的值啊,而且也没进行类型转换的
      

  4.   

        public enum Day
        {
            星期一,
            星期二,
            星期三
        }
    Day d1 = Day.星期二;
    int va = -1;
    va = (int)d1;
    MessageBox.Show(va.ToString());没有问题啊!
      

  5.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace WindowsApplication4
    {
        public partial class Form1 : Form
        {
            Inner_POS m_Pos1;
            Inner_POS m_Pos2;
            int m_HashCode;        public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                POSBin(Inner_POS.POS_A_M, Inner_POS.POS_A_NR);            MessageBox.Show(m_HashCode.ToString());
            }        public void POSBin(Inner_POS pos1, Inner_POS pos2)
            {
                this.m_Pos1 = pos1;
                this.m_Pos2 = pos2;
                this.m_HashCode = (((int)pos1) * (0x40)) + ((int)pos2);            //this.m_HashCode = (int) ((pos1 * ((Inner_POS) 0x40)) + pos2);
            } 
        }
        public enum Inner_POS
        {
            POS_UNK,
            POS_D_K,
            POS_D_H,
            POS_A_NZ,
            POS_A_NX,
            POS_A_NT,
            POS_A_NS,
            POS_A_NR,
            POS_D_Z,
            POS_D_Y,
            POS_D_X,
            POS_D_W,
            POS_D_V,
            POS_D_U,
            POS_D_T,
            POS_D_S,
            POS_D_R,
            POS_A_Q,
            POS_D_P,
            POS_D_O,
            POS_D_N,
            POS_D_MQ,
            POS_A_M,
            POS_D_L,
            POS_D_I,
            POS_D_F,
            POS_D_E,
            POS_D_D,
            POS_D_C,
            POS_D_B,
            POS_D_A
        } 
    }
    输出:1415