Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#非静态字段、方法或属性需要对象引用';变量。rhifAnfoneb';_C# - Fatal编程技术网

C#非静态字段、方法或属性需要对象引用';变量。rhifAnfoneb';

C#非静态字段、方法或属性需要对象引用';变量。rhifAnfoneb';,c#,C#,我正在尝试从另一个表单获取列表。我已经公开了这个名单,并把它放在自己的课堂上,但没有用 表格1: using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; u

我正在尝试从另一个表单获取列表。我已经公开了这个名单,并把它放在自己的课堂上,但没有用

表格1:

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.Common;
using System.Configuration;

namespace eAnfonebu
{
    public class variables
    {
        public List<int> rhifAnfoneb = new List<int>();
        public List<int> rhifArcheb = new List<int>();
        public string[] ddydiadArcheb;
        public string[] enwArchebwr;
        public string[] eBost;
        public int[] gair;
        public decimal[] prisMilGair;
    }
    public partial class Form1 : Form
    {


        public Form1()
        {
            InitializeComponent();

        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void createNew_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.ShowDialog(); // Shows Form2
        }

    }
}
我在中得到错误(非静态字段、方法或属性“variables.rhifAnfoneb”需要对象引用)

我很抱歉在同一个代码中使用不同的语言,但我会说两种语言,有时我开始用一种语言制作一个应用程序,但后来它慢慢地演变成另一种语言

如果是awnsering,你能不能请awnser尽可能简单,因为我是c的新手#

任何帮助都将不胜感激

Eoin

我得到了错误(需要对象引用 中的非静态字段、方法或属性“variables.rhifAnfoneb”)

实例化该类,然后使用其成员

public static Variables variabs {get;set;}
public Form2()
{
  variabs = new variables();
  InitializeComponent();
}
private void AddInvoice_Click(object sender, EventArgs e)
{
 try
 {
  variabs.rhifAnfoneb.Add(variables.rhifAnfoneb[variables.rhifAnfoneb.Length - 1] + 1);
 }
.
.
}
从Form1访问

改变

public class variables

并使所有字段也是静态的。因为,静态类只能包含静态数据成员、静态方法

创建
变量的实例

variables v = new variables();
v.rhifAnfoneb.Add(variables.rhifAnfoneb[variables.rhifAnfoneb.Length - 1] + 1);
参考文献

您是否尝试过研究编译器错误?有很多参考资料解释说,您需要一个
变量
类的实例,或者将其设置为静态。为什么要使用upvote?这个问题是独一无二的吗?它表明了研究的努力吗?一个名为
variables
的类是一个非常糟糕的名字。您应该考虑命名类,如封装行为的实体。
变量的作用是什么?无论如何,为了使整个类成为静态的,你必须使每个成员都是静态的。除了@HimBromBeere所说的,这里更重要的是你想要在多个表单之间共享数据。在WinForms中,不使用普通变量,也不使用列表和数组,而是使用数据绑定、事件和INotifyPropertyChanged等。问题不在于你只是在学习C#,你在尝试学习GUI框架,要正确回答这个问题需要的不仅仅是“使用
new
static
”@CodeCaster好的,我重新打开了。不幸的是,CS0120没有真正好的规范问题/答案,尽管这个错误几乎每天都会出现一次。这个局部变量有什么用处,如果他们想在表单之间共享它?它将包含发票的编号,我需要在表单之间共享它,以便我可以在一个表单中添加一组数据,然后使用该数据在另一个表单中生成发票让我这样说:代码
var sl=new List()有什么用;sl.Add(“foo”),当它超出范围时?如果一个变量在您可以使用它做任何有用的事情之前就超出了范围,那么它有什么用途?@CodeCaster,明白了,谢谢,让我更新。@Eoin,您能确认解决方案是否回答了您的查询吗?如果是,您可以单击绿色勾选框将其标记为已解决
public static Variables variabs {get;set;}
public Form1()
{
   variabs= Form2.variabs;
}


public class variables
public static class variables
variables v = new variables();
v.rhifAnfoneb.Add(variables.rhifAnfoneb[variables.rhifAnfoneb.Length - 1] + 1);