当我在我的 c# windows 应用程序项目中定义一个类时,该类应该在项目内部可用。
所以我应该能够在我的表单中声明那种类型的类,而无需将我的类定义为公共类。
但是我遇到了一个可访问性错误,当我的类被重新定义为公共而不是默认值(它应该是程序集的内部)时,它就会消失。
这不是一个重复的问题。这个问题与我见过的其他可访问性问题不同。
我项目中的所有项目(表单、类等)都应该属于同一个程序集,那么发生了什么?
类的默认范围是否是内部的?研究表明它应该是内部的,所以这段代码应该可以工作......
我得到......“不一致的可访问性。字段类型队列比 Form1.Queue 更难访问”
请参阅下面的代码。
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Queue Queue; // <-- PROBLEM LINE
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
这是队列的定义;我不认为它真的很重要,但它是由评论者要求的;当我公开课程时,所有问题都解决了。但是,如果默认范围应该是内部的,那就没有意义了,它不应该强迫我公开:
namespace WindowsFormsApplication3
{
class Queue
{
private const int DEFAULTQUEUESIZE = 100;
private int[] data;
private int head = 0, tail = 0;
private int numElements = 0;
public Queue()
{
this.data = new int[DEFAULTQUEUESIZE];
}
public void Enqueue(int item)
{
if (this.numElements == this.data.Length)
{
throw new Exception("Queue full");
}
this.data[this.head] = item;
this.head++;
this.head = this.head % this.data.Length;
this.numElements++;
}
public int Dequeue()
{
if (this.numElements == 0)
{
throw new Exception("Queue Empty");
}
int queueItem = this.data[this.tail];
this.tail++;
this.tail = this.tail % this.data.Length;
this.numElements--;
return queueItem;
}
}
}
ITMISS
红颜莎娜
相关分类