我有2個互操作的數據結構的一類私有成員,AccessViolationException如果我變量聲明爲公共成員,而不是局部變量
public class RunInterop
{
private AlphaShapeCg _alphaHandler;
private DoubleCgList alphaLevels;
private FaceCgList faceCgList;
public RunInterop()
{
faceCgList =new FaceCgList();
alphaLevels = new DoubleCgList();
Interop_Init(ref _alphaHandler, ref faceCgList, ref alphaLevels);
Interop_Run(ref _alphaHandler);
}
}
現在的問題是,我將在Interop_Run
得到System.AccessViolationException
線。
但是,如果我用以下方式重寫我的代碼:
public class RunInterop
{
private AlphaShapeCg _alphaHandler;
public RunInterop()
{
var faceCgList =new FaceCgList();
var alphaLevels = new DoubleCgList();
Interop_Init(ref _alphaHandler, ref faceCgList, ref alphaLevels);
Interop_Run(ref _alphaHandler);
}
}
那麼我不會有任何問題。任何想法爲什麼這是這種情況?
編輯:真令人費解的是,爲什麼如果我宣佈faceCgList
和alphaLevels
爲局部變量,問題就會消失?
「_alphaHandler」聲明在哪裏? –
也,你的代碼聞起來。 –
@ DanielA.White,問題更新 – Graviton