Error 1 Inconsistent accessibility: parameter type C#编译时候出错
2012-12-14 22:53
399 查看
问题场景:
我在C#定义了一个类A,其类型是默认类型,也就是只对命名空间内部全部开放。
另外我又在另外一个命名空间里定义了另外一个类B(为public类型),并且在这个类中定义了A的public对象.
在编译的时候提示上面的错误。
问题分析:
从上面的说明中我们可以看到,本来A对象是限定在它自己的命名空间里的,但是由于B的类型更加的开放,所以会导致B的类会把A的类给
开放出去。所以为了限制这种间接的类泄漏,所以C#对这个进行了严格的检查,一定要要求类的类成员一定比他的控制范围更加的广。
解决问题:
所以,最终的解决办法就是让A的作用域比B的更大或是至少和B一样,如果B为public 则把A也定义成public就可以了。
我在C#定义了一个类A,其类型是默认类型,也就是只对命名空间内部全部开放。
另外我又在另外一个命名空间里定义了另外一个类B(为public类型),并且在这个类中定义了A的public对象.
在编译的时候提示上面的错误。
问题分析:
从上面的说明中我们可以看到,本来A对象是限定在它自己的命名空间里的,但是由于B的类型更加的开放,所以会导致B的类会把A的类给
开放出去。所以为了限制这种间接的类泄漏,所以C#对这个进行了严格的检查,一定要要求类的类成员一定比他的控制范围更加的广。
解决问题:
所以,最终的解决办法就是让A的作用域比B的更大或是至少和B一样,如果B为public 则把A也定义成public就可以了。
相关文章推荐
- C#函数编译出错:Inconsistent accessibility: parameter type ‘aaa.bbb.ccc’ is less accessible than method ‘aa
- Error 1 Inconsistent accessibility: parameter type 编译错误
- Error 1 Inconsistent accessibility: parameter type 编译错误
- Error 1 Inconsistent accessibility: parameter type C#错误原因
- 编译busybox的时候出现error: field 'in' has incomplete type
- Inconsistent accessibility: parameter type … is less accessible than …
- 编译busybox的时候出现error: field 'in' has incomplete type
- linux 编译ffmpeg 出错:error: 'UINT64_C' was not declared in this scope
- linux 编译ffmpeg 出错:error: 'UINT64_C' was not declared in this scope
- Ubuntu中crosstool-ng编译出错:[ERROR] gtype-desc.c:8829:18: error: subscripted value is neither array nor
- 编译php5.4的时候出现错误----configure: error: in `/usr/local/src/php540/php-5.4.0':
- vs2015编译gdal出错:error LNK2019: unresolved external symbol _vsnwprintf_s referenced in function String
- ubuntu安装opencv2.4.9编译出错NCVPixelOperations.hpp: error: a storage class is not allowed in an explicit
- ROS Kinetic编译旧版本程序出现 error: ‘shared_ptr’ in namespace ‘std’ does not name a type
- Keil编译S3C2440工程时出错:error: A1355U: A Label was found which was in no AREA 终级解决办法
- 第四章:编译的时候出错,报:OutOfMemoryError
- Inconsistent accessibility: field type '...' is less accessible than field '...'
- MATLAB编译c++出错的解决办法(Error in compile (line 439) mex(args{:});)
- VS2005中编译出错:Error 1 error C3872: '0x3000': this character is not allowed in an identifier
- 编译 libiconv-1.14 的时候出现 ./stdio.h:1010:1: error: 'gets' undeclared here (not in a function)