【问题标题】:Generic Argument Error [closed]通用参数错误[关闭]
【发布时间】:2012-05-02 15:33:00
【问题描述】:

您好,我正在尝试修复此代码以进行编译但找不到方法

错误:

Pro\AGeeksToy\Controls\LadderHeader.cs(218,98):错误 CS0426:类型名称“menuData”在类型“AGeeksToy.CoreDataTypes.AGeeksToyToolStripMenuItem>”中不存在

这是错误。

   private void ChangeStakingType(AGeeksToyToolStripMenuItem<EnhancedType<StakingTypeEnum>>.menuData newType)
    {
        this.StakeBox.StakingType.Value = newType.Data.Value;
    }

AGeeksToyToolStripMenuItem 类代码:

  namespace AGeeksToy.CoreDataTypes
{
    using System;
    using System.Windows.Forms;

    public abstract class AGeeksToyToolStripMenuItem<T> : ToolStripMenuItem, AGeeksToyMenu
    {
        public MouseButtons LastMouseButton;
        public MenuData<T> menuData;
        public static readonly VoidEventWithParam<MenuData<T>> RightClicked;

        static AGeeksToyToolStripMenuItem()
        {
            AGeeksToyToolStripMenuItem<T>.RightClicked = new VoidEventWithParam<MenuData<T>>();
        }

        protected AGeeksToyToolStripMenuItem(T obj, string text) : this(obj, text, null)
        {
        }

        protected AGeeksToyToolStripMenuItem(T obj, string text, Control ctrl)
        {
            base.DropDown.ImageList = IconManager.m_ImageList;
            this.menuData = new MenuData<T>(obj, ctrl);
            this.Text = text;
        }

        protected override void Dispose(bool disposing)
        {
            base.DropDown.ImageList = null;
            base.Dispose(disposing);
        }

        protected override void OnClick(EventArgs e)
        {
            if (this.MenuControl != null)
            {
                this.MenuControl.Refresh();
            }
            base.OnClick(e);
            if (this.LastMouseButton == MouseButtons.Right)
            {
                AGeeksToyToolStripMenuItem<T>.RightClicked.TriggerEvent(this.menuData);
            }
        }

        protected override void OnMouseDown(MouseEventArgs e)
        {
            this.LastMouseButton = e.Button;
            base.OnMouseDown(e);
        }

        public virtual void SetMenu()
        {
            this.LastMouseButton = MouseButtons.Left;
            if (this.MenuControl != null)
            {
                base.Visible = this.MenuControl.Visible;
                this.Enabled = this.MenuControl.Enabled;
            }
            foreach (ToolStripItem item in base.DropDownItems)
            {
                if (item is AGeeksToyMenu)
                {
                    (item as AGeeksToyMenu).SetMenu();
                }
            }
        }

        public T Menu_Data
        {
            get
            {
                return this.MenuObject;
            }
        }

        protected Control MenuControl
        {
            get
            {
                return this.menuData.Control;
            }
        }

        protected T MenuObject
        {
            get
            {
                return this.menuData.Data;
            }
            set
            {
                this.menuData.Data = value;
            }
        }


        public class MenuData<T>
        {
            public System.Windows.Forms.Control Control;
            public T Data;

            public MenuData(T obj, System.Windows.Forms.Control ctrl)
            {
                this.Data = obj;
                this.Control = ctrl;
            }
        }
    }
}

http://i.stack.imgur.com/XfUIA.png

编译错误。

如果有人可以下载该项目或在此处查看可用的源代码

Download Link Google Code

Trunk 也可用,但还不能发布直接链接。

感谢您的帮助

【问题讨论】:

  • 拜托,做你的调试,然后回到 SO...
  • 这是stackoverflow上最没用的问题之一。

标签: c# reflector betfair


【解决方案1】:

您是说您有一个名为 ChangeStakingType 的私有返回 void 方法,该方法采用一个参数。参数名称为“newType”,参数类型为AGeeksToyToolStripMenuItem&lt;EnhancedType&lt;StakingTypeEnum&gt;&gt;.menuData。但是您的程序中没有名为menuData 的类型。有一个名为menuData 的字段和一个名为MenuData&lt;T&gt; 的类型,但没有名为menuData 的类型。

【讨论】:

    【解决方案2】:

    C# 区分大小写。

    您正在尝试使用menuData 类,而实际类称为MenuData。将 M 设为大写

    【讨论】:

      猜你喜欢
      • 2016-07-03
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-02
      • 1970-01-01
      • 2018-09-23
      • 1970-01-01
      相关资源
      最近更新 更多