先简单写个程序类。在一个aa.cs类中:
namespace abc
{
abstract class aa()
{
......
}
}在bb类中:
namespace abc
{
class bb():aa
{
......
}
}将它们封装成DLL。
====================================现在写个新的程序。引入上面的DLL文件。在输入abc. 的时候,请问如何才能:只显示bb这个继承类,而不显示aa这个基类呢?
namespace abc
{
abstract class aa()
{
......
}
}在bb类中:
namespace abc
{
class bb():aa
{
......
}
}将它们封装成DLL。
====================================现在写个新的程序。引入上面的DLL文件。在输入abc. 的时候,请问如何才能:只显示bb这个继承类,而不显示aa这个基类呢?
解决方案 »
- 实现Excel数据读取 在表格或者datagrid中展示 可以编辑,然后存入数据库
- 新手求助 C#静态string赋值问题
- C#水晶报表
- 如何打印出C#堆栈内所有变量值
- 谁能提供C#编写HTTP代理服务器的原码呢.课程设计要用到.时间紧迫........
- Web Service中如何在一个会话中保存数据?
- 请教一个 FileStream 检查文件类型的问题,谢谢!
- winform datagridview控制数据库的问题,大牛来!!!!还可以输入39个字符,标题一定要长!!!!好了,暂时先这么长吧。。。。
- 有人研究 mono for android 这东西吗?
- 如何将ACCESS中的表改名?
- ASP.NET中文件上传
- [急]诺顿将我电子邮件程序卡掉了,有什么办法解决?
{
abstract class aa()
{
......
}
} 在bb类中:
namespace abc
{
class bb():aa
{
......
}
} --------------------------确实是访问权限的问题,你在建立类时没有加访问修饰符,所以他为默认是internal
而internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”。 所以你在另外的项目即(Assembly)以外的项目进行引用,是无法访问的.
参考namespace abc
{
abstract class aa
{ }
} namespace abc
{
public class bb : aa
{ }
}
基类不对外公开,继承类怎么能对外公开?用2楼的[EditorBrowsable(EditorBrowsableState.Never)]可以达到效果
[EditorBrowsable(EditorBrowsableState.Never)]是作用是为了在属性窗口中隐藏该成员,但在代码窗口中还是可以看到这个成员。而且EditorBrowsableAttribute是用来指定某个属性或方法在编辑器中可以查看,而不是类。
所以不能用EditorBrowsableAttribute来隐藏类。
基类不对外公开,继承类怎么能对外公开?
-------------------------------
你的问题牧野(高分亮解)已经给出了答案,不知道你是否明白
继承类只能比基类的可访问性高,而不是继承类的可访问性比基类低