C# 获取不一致的可访问性错误

C# 获取不一致的可访问性错误,c#,C#,我遇到了一点小问题,似乎无法解决。有人能帮我吗, 以下是错误: 错误1:辅助功能不一致:字段类型 “Flashloader.Toepassing”比字段更难访问 'Flashloader.NewApplication.Toepassing' 错误2可访问性不一致:参数类型 “Flashloader.ToePassingifile”比方法更难访问 'Flashloader.NewApplication.NewApplication(Flashloader.ToePassingiFile)' 因此,

我遇到了一点小问题,似乎无法解决。有人能帮我吗,
以下是错误:

错误1:辅助功能不一致:字段类型 “Flashloader.Toepassing”比字段更难访问 'Flashloader.NewApplication.Toepassing'

错误2可访问性不一致:参数类型 “Flashloader.ToePassingifile”比方法更难访问 'Flashloader.NewApplication.NewApplication(Flashloader.ToePassingiFile)'

因此,在这种情况下,错误源非常有用

Source 1新应用程序(这是一个Winform):

Source 2 flashloader.Toe传递文件(这是一个类):

最后是source 3 flashloader.ToePassingifile(另一个类):

命名空间Flashloader
{
类ToePassingFile
{
私有常量字符串文件\u NAME=“flash.ini”;
专用控制器列表(控制器),;
公共Toepassinglist ToePassingen{get;private set;}
公共设置{get;private set;}
公共ToPassingFile(控制器列表控制器)
{
_控制器=控制器;
//TODO启动类maken en loaded
ToePassingen=加载ToePassingen();
}
私有Toepassinglist加载ToePassingen()
{
StringList输入=新建StringList().FromFile(文件名);
Toepassinglist输出=新的Toepassinglist();
设置=空;
Toepassing Toepassing=null;
foreach(输入中的变量项)
{
字符串行=item.Trim();
if(line.StartsWith(“[”)&&line.EndsWith(“]))
{
设置=空;
toepassessing=null;
字符串名称=line.Substring(1,line.Length-2);
if(name.ToUpper().Equals(“启动”))
{
设置=设置=新设置();
继续;
}
//TODO kan weg在德toekomst
if(name.ToUpper().Equals(“拖放”))
{
toepassessing=null;
继续;
} // */
脚趾通过=新脚趾通过(名称);
输出。添加(通过);
}
else if(设置!=null)
{
int index=line.IndexOf('=');
如果(指数<0)
继续;
String key=line.Substring(0,index.Trim();
字符串值=line.Substring(索引+1.Trim();
if(Utils.EqualsIgnoreCase(键,“波特率”))
设置。波特率=值;
else if(Utils.EqualsIgnoreCase(键,“端口”))
设置。端口=值;
}
else if(toepassessing!=null)
{
int index=line.IndexOf('=');
如果(指数<0)
继续;
String key=line.Substring(0,index.Trim();
字符串值=line.Substring(索引+1.Trim();
if(Utils.EqualsIgnoreCase(键,“TabTip”))
toepassessing.TabTip=值;
else if(Utils.EqualsIgnoreCase(键,“控制器”))
toepassing.Controller=\u controllers.FindByName(值);
else if(Utils.EqualsIgnoreCase(键,“Lastfile”))
toepassing.Lastfile=值;
else if(Utils.EqualsIgnoreCase(键,“Useboot”))
toepassing.Useboot=值;
}
}
返回输出;
}
公共作废保存()
{
StringList=新的StringList();
Toepassing设置=新Toepassing(“[Startup]”);
列表.添加(“[”+设置.名称+“]”);
list.Add(“LastUsed=”);
list.Add(“Port=“+settings.Port”);
添加(“波特率=“+settings.Baudrate”);
foreach(ToePassingen中的TOEPASSINGE项目)
{
列表.添加(“[”+项.名称+“]”);
list.Add(“Controller=“+item.Controller.Name”);
list.Add(“TabTip=“+item.TabTip”);
list.Add(“LastFile=“+item.LastFile”);
添加(“UseBoot=“+item.UseBoot”);
}
toepassessing dragndrop=新的toepassessing(“[拖放]”);
列表.添加(“[”+dragndrop.Name+“]”);
添加(“Autostart=”);
添加(“Baudrate=“+dragndrop.Baudrate”);
list.Add(“Port=“+dragndrop.Port”);
添加(“Lasfile=“+dragndrop.Lastfile”);
list.ToFile(文件名);
}
}
}
如果我能得到一些帮助,解决错误就会容易得多


修复了它

由于
ToePassingIfile
用于
public
类型的
public
方法,因此它必须通过
public
自身(当前为
内部
)。更改:

致:

甚至更好;p

public class ToePassingIniFile
另一方面,由于
toepassessing
用作
public
类型上的
public
字段,因此
toepassessing
本身必须是
public

最后一个想法:
公共
字段很少是个好主意;最好是
公共
酒店:

private Toepassing toepassing = new Toepassing();
public Toepassing Toepassing  {get { return toepassing; } }

在类声明之前添加public。
您的第一个类是公共的,因此ToePassingFile和Toepassing也必须是公共的。

您收到的错误是,您将无法从类中使用公共方法,因为该类被标记为私有

默认情况下,类是内部的

class ClassName
{
public void Method()
由于类的可访问性不如方法,所以您永远不能调用方法,因此上述操作将出错

private bool Property {get; public set;}
威尔可能也会犯错


请看

您错过了重要的部分,我猜您没有声明类
公共/内部
公共类名
@Sayse漂亮的答案^^运气不好这是一个comment@WhileTrueSleep-我不喜欢通过解决非常简单的问题来获得声誉
public class toepassinginifile
public class ToePassingIniFile
private Toepassing toepassing = new Toepassing();
public Toepassing Toepassing  {get { return toepassing; } }
class ClassName
{
public void Method()
private bool Property {get; public set;}