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'比方法更难访问的主要内容,如果未能解决你的问题,请参考以下文章

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

c#访问性不一致的问题

为啥在接口列表的泛型类型中使用私有嵌套类型不是“不一致的可访问性”?

如何避免类和方法的可访问性不一致导致的编译错误?

可访问性不一致:字段类型“世界”比字段“frmSplashScreen”更难访问

我用的是C#,