C# 在Visual C中,我无法将我的公共类公开
我正试图在Visual C中制作一个程序,其中包含我创建的一个类,在应用程序启动时,它会创建一个我的类对象数组,这个对象数组可以在整个程序中使用。因此,任何函数或控件的事件都可以访问对象数组及其成员变量。 我将我的类创建为“public”,但由于某些原因,我在生成时出现以下错误: “当前上下文中不存在名称“MyArrayObjectNameHere” 当我试图访问加载文件对话框事件中的对象成员变量时,我试图将数据从文件加载到对象数组的成员变量中 是否有一个特定的位置需要声明和构造对象数组,以便它在每个上下文中都存在?如果是的话,你能告诉我这在哪里吗 我目前在运行form1之前在main函数中声明它 我的类定义在其自己的.cs文件和程序命名空间中如下所示:C# 在Visual C中,我无法将我的公共类公开,c#,.net,C#,.net,我正试图在Visual C中制作一个程序,其中包含我创建的一个类,在应用程序启动时,它会创建一个我的类对象数组,这个对象数组可以在整个程序中使用。因此,任何函数或控件的事件都可以访问对象数组及其成员变量。 我将我的类创建为“public”,但由于某些原因,我在生成时出现以下错误: “当前上下文中不存在名称“MyArrayObjectNameHere” 当我试图访问加载文件对话框事件中的对象成员变量时,我试图将数据从文件加载到对象数组的成员变量中 是否有一个特定的位置需要声明和构造对象数组,以便它
public class MyClass
{
public int MyInt1;
public int MyInt2;
}
在加载表单之前,我在main函数中声明了如下对象数组:
MyClass[] MyArrayObject;
MyArrayObject = new MyClass[50];
for (int i = 0; i < 50; i++)
{
MyArrayObject[i] = new MyClass();
}
MyClass[]MyArrayObject;
MyArrayObject=新的MyClass[50];
对于(int i=0;i<50;i++)
{
MyArrayObject[i]=新的MyClass();
}
提前感谢您的帮助。所有上下文中只有静态对象可用。虽然你的设计缺乏。。。呃,一般来说,您可以添加第二个静态类来维护MyClass的数组:
public static class MyClassManager
{
private MyClass[] _myclasses;
public MyClass[] MyClassArray
{
get
{
if(_myclasses == null)
{
_myClasses = new MyClass[50];
for(int i = 0; i < 50;i++)
_myClasses[i] = new MyClass();
}
return _myclasses;
}
}
}
公共静态类MyClassManager
{
私人MyClass[]\u MyClass;
公共MyClass[]MyClassArray
{
收到
{
如果(_myclasses==null)
{
_MyClass=新的MyClass[50];
对于(int i=0;i<50;i++)
_MyClass[i]=新的MyClass();
}
返回我的类;
}
}
}
你自己做一个fav,通过杰弗里·里克特的C#抓住CLR。跳过前几章,阅读其余部分。所有上下文中只有静态对象可用。虽然你的设计缺乏。。。呃,一般来说,您可以添加第二个静态类来维护MyClass的数组:
public static class MyClassManager
{
private MyClass[] _myclasses;
public MyClass[] MyClassArray
{
get
{
if(_myclasses == null)
{
_myClasses = new MyClass[50];
for(int i = 0; i < 50;i++)
_myClasses[i] = new MyClass();
}
return _myclasses;
}
}
}
公共静态类MyClassManager
{
私人MyClass[]\u MyClass;
公共MyClass[]MyClassArray
{
收到
{
如果(_myclasses==null)
{
_MyClass=新的MyClass[50];
对于(int i=0;i<50;i++)
_MyClass[i]=新的MyClass();
}
返回我的类;
}
}
}
你自己做一个fav,通过杰弗里·里克特的C#抓住CLR。跳过前几章,阅读其余部分。您需要将数组设置为某个类的静态成员。NET在任何类之外都没有全局作用域 e、 g
然后,您可以将其作为.MyArray访问到任何地方您需要使该数组成为某个类的静态成员 e、 g
然后,您可以在任何地方以.MyArray的形式访问它您的问题是您正在主函数中定义它,因此它将只存在于主函数中。您需要在类内部定义它,而不是在函数内部 public partial class Form1:Form { MyClass[] MyArrayObject; // declare it here and it will be available everywhere public Form1() { //instantiate it here MyArrayObject = new MyClass[50]; for (int i = 0; i 公共部分类Form1:Form { MyClass[]MyArrayObject;//在这里声明它,它将在任何地方都可用 公共表格1() { //在这里实例化它 MyArrayObject=新的MyClass[50];
对于(int i=0;i您的问题是您在主函数中定义它,因此它将只存在于主函数中。您需要在类中定义它,而不是在函数中定义它 public partial class Form1:Form { MyClass[] MyArrayObject; // declare it here and it will be available everywhere public Form1() { //instantiate it here MyArrayObject = new MyClass[50]; for (int i = 0; i 公共部分类Form1:Form { MyClass[]MyArrayObject;//在这里声明它,它将在任何地方都可用 公共表格1() { //在这里实例化它 MyArrayObject=新的MyClass[50];
对于(int i=0;i这不好。它对像我这样的学习者非常有用。这不好。它对像我这样的学习者非常有用