您好我试图修复此代码以便编译并且无法找到方法
ERROR:
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
编译错误。
如果有人可以下载项目或检查其可用的源
Trunk也可用,但无法发布直接链接。
感谢您的帮助
答案 0 :(得分:9)
你说你有一个名为ChangeStakingType的私有void返回方法,它接受一个参数。参数的名称为“newType”,参数的类型为AGeeksToyToolStripMenuItem<EnhancedType<StakingTypeEnum>>.menuData
。但是程序中没有名为menuData
的类型。有一个名为menuData
的字段和一个名为MenuData<T>
的字段,但没有名为menuData
的类型。
答案 1 :(得分:0)
C#区分大小写。
当您调用实际的类menuData
时,您正在尝试使用MenuData
类。使M
大写