[英]'Object' does not contain a definition for
I'm trying to create an event handler and I am getting the error : 'Object' does not contain a definition for ListCountLastH "
and same for listCountLH
.我试图创建一个事件处理程序,我得到错误:
'Object' does not contain a definition for ListCountLastH "
并同listCountLH
。
Changing private List
to public List
makes no difference and I am pretty sure I have to initialise the lists in protected override void OnStateChange()
but anyway public /*override*/ void OnStateChange()
makes no difference, so any help would be greatly appreciated.将
private List
更改为public List
没有区别,我很确定我必须在protected override void OnStateChange()
初始化列表protected override void OnStateChange()
但无论如何public /*override*/ void OnStateChange()
没有区别,所以任何帮助将不胜感激.
public class Incrementer : DivergenceList5m
throws ListCountLastH
and listCountLH
inaccessible due to protection level public class Incrementer : DivergenceList5m
抛出ListCountLastH
和listCountLH
由于保护级别而无法访问
DivergenceList5m.ListCountLastH.Add(DivergenceList5m.listCountLH);
throws additionally "An object reference is required for the non-static field, method or property'Namwspace.Class.ListCountLastH "
and same for listCountLH
and I just don't know what else to try...另外抛出
"An object reference is required for the non-static field, method or property'Namwspace.Class.ListCountLastH "
listCountLH
"An object reference is required for the non-static field, method or property'Namwspace.Class.ListCountLastH "
, listCountLH
,我只是不知道还能尝试什么......
Thank you谢谢
public class Divergence5min : Strategy
{
public int listCountLH;
private List<int> ListCountLastH;
private List<double> LastHSwDMI;
protected override void OnStateChange()
{
ListCountH = new List<int>();
LastHSwDMI = new List<double>();
}
...
protected override void OnBarUpdate()
{
if (!LHsDmiAdd && b > 1 && HSwDMI[b-1] - HSwDMI[b] > 0.001 && HSwDMI[b-1] - HSwDMI[b-2] > 0.001)
{
LastHSwDMI.Add(HSwDMI[b-1]);
listCountLH = LastHSwDMI.Count;
ListCountLastH.Add(listCountLH);
...
}
}
public class Incrementer
{
public EventHandler ItemAdded;
public void AddItem()
{
base.ListCountLastH.Add(base.listCountLH);
if (ItemAdded != null)
ItemAdded(this, null);
}
}
}
Modifying like this with the private List
still throws the 'inaccessible due to its protection level' error.使用
private List
这样的修改仍然会引发“由于其保护级别而无法访问”错误。 The subscriber class does not throw any errors, though尽管订阅者类不会抛出任何错误
public class Incrementer : DivergenceList5m
{
public event EventHandler ItemAdded;
public void AddItem()
{
var divList = new DivergenceList5m();
divList.ListCountLastH.Add(divList.listCountLH);
if (ItemAdded != null)
ItemAdded(this, null);
}
}
class AddingItems
{
public int ItemsCount {get; private set;}
public void Items (Incrementer incrementer)
{
ItemsCount = 0;
incrementer.ItemAdded += AddItems;
}
void AddItems (object source, EventArgs e)
{
ItemsCount++;
}
}
Last code version最后一个代码版本
public class Divergence5min : Strategy
{
public int listCountLH;
public List<int> ListCountLastH;
public List<double> LastHSwDMI;
...
public class Incrementer : DivergenceList5m
{
public event EventHandler ItemAdded;
public void AddItem()
{
var divList = new DivergenceList5m();
divList.ListCountLastH.Add(divList.listCountLH);
if (ItemAdded != null)
ItemAdded(this, null);
}
}
class AddingItems
{
public int ItemsCount {get; private set;}
public void Items (Incrementer inc)
{
ItemsCount = 0;
inc.ItemAdded += AddItems;
}
void AddItems (object source, EventArgs e)
{
ItemsCount++;
}
}
Looks like you are calling base.listCountLH
in a class which inherits from object
(ie you have not inherited it from anything - object
is the default type).看起来您正在从
object
继承的类中调用base.listCountLH
(即您没有从任何东西继承它 - object
是默认类型)。 You need to inherit from Divergence5min
like this:您需要像这样从
Divergence5min
继承:
public class Incrementer: Divergence5min
In order to now call ListCountLastH
from here, that property should be at least protected in order to access it from an inherited class:现在为了从这里调用
ListCountLastH
,该属性至少应该受到保护,以便从继承的类访问它:
protected List<int> ListCountLastH;
To access non-static members on a class you need to instantiate it first with:要访问类上的非静态成员,您需要先使用以下命令实例化它:
var divList = new DivergenceList5m(); divList.ListCountLastH.Add(divList.listCountLH);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.