Error 1 Inconsistent accessibility: parameter type 编译错误

原创 2007年09月29日 14:08:00

c#编程编译错误列表

Posted on 2007-08-24 17:27 木子文武 阅读(24) 评论(0)  编辑  收藏 所属分类: windows开发

这是一个老外的文章,上面详细的列出来很多编译错误的原因和解决方案。http://www.vijaymukhi.com/documents/books/csadv/chap10.htm
我们很多人对一个语言的了解停留在3/4的水平上的时候,写程序时会遇到很多问题,大部分都是自己理解的问题。

我今天就碰到一个,错误提示是这样的:
Error 1 Inconsistent accessibility: parameter type 'DepthMoonSoft.IO.TipsConfig.Element' is less accessible than method 'MiniTips_D1.MainForm.SetControlStyle(System.Windows.Forms.Control, DepthMoonSoft.IO.TipsConfig.Element)' D:/plan/MiniTips_D1/MiniTips_D1/MainForm.cs 60 21 MiniTips_D1
我想来半天也没想清楚是为什么呢?下面是我的代码片段:

一个文件
namespace DepthMoonSoft.IO
{
class TipsConfig
    
{
        
public enum StyleElement
        
{
            Font, Color, Image, Transparent, Bold, Size, Width, Height, X, Y
        }
;

        
public enum Element
        
{
            Form, MiniForm, Time, Text,
            PgUpButton, PgDnButton, CloseButton, NewButton, DelButton, SaveButton,
            WeekStyle, DayStyle
        }
;
     }

}


另外一个文件
using DepthMoonSoft.IO;
namespace MiniTips_D1
{
    
public partial class MainForm : Form
    
{
         
public void SetControlStyle(Control ctrl, TipsConfig.Element name)
        
. }
     }

}

这 里是什么原因导致的编译错误呢?其实很简单,访问控制符的问题。首先在默认情况下名称空间中的类如果没有什么控制符,默认为internal (TipsConfig就是这样), 那么当该类型别声明在别的名称空间中的类中时,如果该参数的方法是public, 并且该类的也是public类,那么问题就来了(如MainForm类,该类可以被其他名称空间中的类引用,但是TipsConfig类是 internal, 这样就导致来TipsConfig类限制来SetControlStyle访问权限,so,会出现上面的编译错误)。
解决方法有二: 提升TipsConfig类的访问权限,即什么为Public; 或移除MainForm的Public标志。very good!
 

相关文章推荐

编译错误:error: default argument given for parameter 1 of ‘’ [-fpermissive]

问题: 编译时出现错误提示如下: u1204@u1204-zhw:~/hwsvn/2sw/4prj_mips/UCP_rt5350/src/trunk$ make g++ -g3 -Wall -o0 ...

android源码编译错误make ***[out/host/linux-x86/obj/EXECUTABLE/llvm-rs-cc_intermediates/llvm-rs-cc] Error 1

系统是Ubuntu12 64位,2G内存,编译的时候出现下面这个错误: make: *** [out/host/linux-x86/obj/EXECUTABLES/llvm-rs-cc_inter...

验证参数传递引发的Java编译错误“No enclosing instance of type XXX is accessible" 及匿名内部类

1.为了验证实参和形参的区别,运行下面代码: public class ArgPassTest {     public class MyObject { //此行用public没有报错    ...

解决编译错误:dereferencing pointer to incomplete type 的办法

在使用c语言写程序时,可能遇到错误:error :dereferencing pointer to incomplete type。其实,这个错误是指针指向的结构体类型没有定义。 原因可能有很多,但...
  • qunxuan
  • qunxuan
  • 2014年11月07日 08:41
  • 7578

android studio 一次编译错误:Error:Minimum supported Gradle version is 2.14.1.

因为需要,今天从git上重新下载工程到另一个目录下,结果运行的时候报了这个错:Error:Minimum supported Gradle version is 2.14.1.  Current ve...

VC6.0 出现编译错误Error spawning cl.exe的解决办法

由于今天刚要开始学习C++编程的表弟想要让我帮他装个VC编译器。我 给他解压包后,在他电脑里面解压完,VC竟然编译不了,出现了Error spawning cl.exe!!! 相信这个问题已经是困扰过...

c编译错误--error:stray \357 in program及其引发的字符编码概述

在编译c文件的时候,出现如下错误: link.c:69: error: stray ‘\357’ in program link.c:69:error: stray ‘\274’in progra...

有关C++模板(template)的编译错误“error LNK2019: 无法解析的外部符号”的分析

转自:http://blog.csdn.net/fengyhack/article/details/39296411 按照通常的习惯,我们这样设计一个类或者结构(体): 在头文...
  • big_bit
  • big_bit
  • 2016年08月23日 11:09
  • 1753

编译错误之error C3861: “xxxx”: 找不到标识符

今天碰到了找不到标识符的错误!把几个问题总结一下。 我的编译错误是如下: 这个时候,我们一般往这几种情况去考虑。 第一种情况 我们看看是否包含sbc2dbc的文件是否包含进来。我们一查...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Error 1 Inconsistent accessibility: parameter type 编译错误
举报原因:
原因补充:

(最多只允许输入30个字)