基本上,我有一个类与国际象棋游戏的代码,它有一个枚举类..
namespace WindowsFormsApplication1
{
enum STATE { PROMOTION, CASTLING, CHECK, CHECKMATE, DONOTHING };
.....
Run Code Online (Sandbox Code Playgroud)
我想从我的表单代码中引用它:这是代码:
namespace WindowsFormsApplication1
{
public partial class ChessBoard: Form
{
public STATE Gamestate { set; get; }
......
Run Code Online (Sandbox Code Playgroud)
我明白了:
错误1可访问性不一致:属性类型"WindowsFormsApplication1.STATE"的可访问性低于属性"WindowsFormsApplication1.ChessBoard.Gamestate"D:\ Documents and Settings\Dima\My Documents\Visual Studio 2008\Projects\ChessBoardGame\ChessBoardGame\ChessBoard.cs 15 22 ChessBoardGame
为什么我会得到它,我该如何防止它?
Fre*_*eer 11
需要声明的枚举如public在WindowsFormsApplication1:
namespace WindowsFormsApplication1
{
public enum STATE { PROMOTION, CASTLING, CHECK, CHECKMATE, DONOTHING };
.....
Run Code Online (Sandbox Code Playgroud)
首先,请不要在C#中使用SCREAMING CAPS.使用PascalCaseIdentifiers(或本地人的camelCaseIdentifiers); 他们阅读起来更愉快.
其次,你可能会错过一些州.这不是一个坏主意,跟踪游戏是否处于状态的连接passent捕获是允许的.你也没有陷入僵局或其他"被吸引"的状态.
第三,解决你的实际问题:错误告诉你出了什么问题."State"和"GameState"具有不一致的可访问性.您省略了在State上放置辅助功能修饰符,因此它获得了顶级枚举的"内部"默认辅助功能."GameState"是公共类的公共财产.所以你说"公众可用的这个东西的类型是我的程序集的内部实现细节",这显然有点不可能,所以编译器标记它.
我会问自己的第一个问题是"为什么上课?" 你是否打算让这个类由这个以外的程序集创建?
如果您打算将该课程公之于众,那么:
如果您打算将该类设为内部类,则将该类设为内部类.
| 归档时间: |
|
| 查看次数: |
1333 次 |
| 最近记录: |