c#错误不一致的可访问性:参数类型'HRDMSV1.User'比方法更难访问
Posted
技术标签:
【中文标题】c#错误不一致的可访问性:参数类型\'HRDMSV1.User\'比方法更难访问【英文标题】:c# error Inconsistent accessibility: parameter type 'HRDMSV1.User' is less accessible than methodc#错误不一致的可访问性:参数类型'HRDMSV1.User'比方法更难访问 【发布时间】:2019-01-12 08:39:22 【问题描述】:我遇到了一个错误问题...
错误 1 可访问性不一致:参数类型“HRDMSV1.User”的可访问性低于方法“HRDMSV1.FrmAddDoc.FrmAddDoc(HRDMSV1.User)”
感谢所有帮助?
namespace HRDMSV1
public partial class FrmAddDoc : Form
User _user;
private ConnStr connStr = new ConnStr();
public FrmAddDoc(User user) /* error here */
InitializeComponent();
_user = user;
/*...*/
class User
private String _userName;
private String _password;
private bool _readOnly;
private int _userID;
public String userName
get return _userName;
set _userName = value;
public String password
get return _password;
set _password = value;
public bool readOnly
get return _readOnly;
set _readOnly = value;
public int userID
get return _userID;
set _userID = value;
【问题讨论】:
你能告诉我们你的User
类代码吗?
您不能将非公共类用作公共方法参数、字段或属性。
我添加了用户类
【参考方案1】:
您的User
类比public
构造函数FrmAddDoc
更难访问,这是不允许的。如需更多参考,请参阅CS0051
【讨论】:
嗨,谢谢,我公开了用户类,但我仍然不知道问题是什么?其次,还有其他方法可以将类的实例从一种形式传递到另一种形式吗? 问题是 C# 语义不允许它,因此它在编译时被捕获。想一想,既然您无法创建私有User
类的实例,您将如何调用构造函数?我不确定我是否理解你的第二个问题。如果这个问题得到解决,最好标记一个已接受的答案并用新问题打开一个新线程:)
没有指定可访问性级别的类是 default private,所以通过 not 指定 public class User...
你会得到 private class User ...
以上是关于c#错误不一致的可访问性:参数类型'HRDMSV1.User'比方法更难访问的主要内容,如果未能解决你的问题,请参考以下文章
为啥在接口列表的泛型类型中使用私有嵌套类型不是“不一致的可访问性”?