c开发 一个关于访问性的问题

导读:
靠,今天开发的时候碰到一个访问相关的问题,找了半天原因没有找到,所以就到望上查,还是发现了。

本文转自
http://www.efish.cn/Article/2007/4/21/60742.html 问题 我定义了一个类,其中希望其中一个函数可以返回在类中定义list 容器(初学不久,感觉list 和stl中的list容器挺像的,暂时也管list叫容器吧)

namespace mytest{
partial class a{
public list getlist(){
return mylist;
}
private list mylist;
}
}
运行后编译器提示
可访问性不一致: 返回类型"system.collections.generic.list ”比方法“mytest.a.getlist()”的可访问性低"
请问怎样写才能返回list容器? 我定义了一个类,其中希望其中一个函数可以返回在类中定义list 容器(初学不久,感觉list 和stl中的list容器挺像的,暂时也管list叫容器吧)

namespace mytest{
partial class a{
public list getlist(){
return mylist;
}
private list mylist;
}
}
运行后编译器提示
可访问性不一致: 返回类型"system.collections.generic.list ”比方法“mytest.a.getlist()”的可访问性低"
请问怎样写才能返回list容器? 响应者 1:就是说外部对象无法引用到mylist对象的定义。
namespace mytest{
partial class a{
public list getlist(){
return mylist;
}
public list mylist;
}
}
响应者 2:mytype的申明贴出来
响应者 3:partial class a{
public list getlist(){
return mylist;
}
private list mylist;
public class mytype{}//改称public

}
响应者 4:改成public可以解决这个我知道~~~但是改成public后函数getlist()就没有什么意义了。用户可以任意访问并修改mylist中的内容,类的封装性就被破坏了,我希望类外的用户只能通过一个接口,即getlist()来获得类内的list容器,请问该怎么解决?谢谢 响应者 5:不是把mylist改为public而是改mytype 为public
,因为mytype是嵌套类,嵌套它的类之外是无法访问这种类型
响应者 6:明白了~~~原来是犯了一个类似于标准c++中作用域的问题~~~正像hdt(倦怠)所说的一样将mytype改成public就可以了。不过程序看起来好像。。。怪怪的。。。c#中如果允许嵌套类的存在就等于允许用
myclass.myembededclass m_mec;
这种形式来创建对象了吧?不知道为什么~~~这种方式让我这个c/c++程序员看起来很不舒服*_*,明天过来给分~~~ 响应者 7:c++ 也是一样
class a
{
public:
class b
{};
public:
b test()
{
b b1;
return b1;
}
};
....
a a1;
a::b b1 = a1.test(); //如果class b不放在public:里 这句话有访问性错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值