另一个类中的方法“不存在”编译器错误[重复]
Posted
技术标签:
【中文标题】另一个类中的方法“不存在”编译器错误[重复]【英文标题】:Method in another class 'does not exist' compiler error [duplicate] 【发布时间】:2019-09-15 03:20:51 【问题描述】:我确信这很简单。我对 C# 不是很熟悉(我实际上是从 C++ 移植过来的)。
单击“确定”后,我正在调用CalculateFrontages 类中的方法CalculateLines (sn-p):
private void Button_Click(object sender, RoutedEventArgs e)
// MessageBox.Show("User clicked OK");
string value = MSTGapThresholdInMeters.Text;
MSTGapValue = Int32.Parse(value);
MainWindowViewModel.RedTLS = CalculateFrontages.CalculateLines(MainWindowViewModel.RedArmy, Map.MetersPerPixel, MSTGapValue);
MainWindowViewModel.BlueTLS = CalculateFrontages.CalculateLines(MainWindowViewModel.BlueArmy, Map.MetersPerPixel, MSTGapValue);
this.DialogResult = true;
这就是我要调用的另一个类CalculateFrontages中的方法CalculateLines (sn-p):
namespace TacticalAILib
public class CalculateFrontages
static int[] U;
private static TacLineStruct CalculateLines(List<MATEUnit> Army, double MetersPerPixel, int MSTGapValue)
int TempFrom, TempTo;
float TempWeight;
int NumEdges = 0;
double Threshold = MetersPerPixel * MSTGapValue;
U = new int[Army.Count];
它抛出了这个编译器错误:
错误 CS0426 类型名称“CalculateLines”在类型“CalculateFrontages”中不存在
我认为这是范围错误或声明错误。我只是对此知之甚少。
【问题讨论】:
嗯,是private
,不是吗。
private static TacLineStruct CalculateLines...
如果是私有的,则不能在类外引用。不过,该错误消息似乎与该代码不匹配。
“错误 CS0122 'CalculateFrontages.CalculateLines()' 由于其保护级别而无法访问” 而不是?
或者在TacticalAILib
之外的另一个命名空间中有另一个名为CalculateFrontages
的类
(在提出问题时假设您的读者是最好的很有价值。如果您告诉人们您认为他们会不合理地投反对票,那么投反对票可能是该言论的结果。请尽量省略问题中不必要的对话材料,并坚持问题本身。谢谢!)
【参考方案1】:
该方法的可访问性级别为private
,这意味着除所有者类之外的其他任何请求都无法访问该函数。如果您将其更新为public
,您可以从任何地方访问它..
【讨论】:
感谢您提供答案。以上是关于另一个类中的方法“不存在”编译器错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章
C ++错误C2600:无法定义编译器生成的特殊成员函数(必须首先在类中声明)[重复]