将变量从Cs文件传递到C#中的另一个Cs文件

时间:2016-03-24 22:25:54

标签: c#

我试图将类中的m_paths值传递给:ExtractDescriptorsForm.Cs到VisualizeFrom.Cs .. 这是变量在ExtractDescriptorsForm.Cs中的定义方式:

namespace MediaLab.TopSurf
{
    public partial class ExtractDescriptorsForm : Form
        {
            // list of paths that point directly at images, or at
            // directories that contain images
            List<string> m_paths;
            public List<string> Paths { get { return m_paths; } }
     ......}}

我在VisualizeForm.Cs中写的内容:

List<string> j = ExtractDescriptorsForm.m_paths;

错误是:

非静态字段,方法或属性'MediaLab.TopSurf.ExtractDescriptorsForm.m_paths'

需要对象引用

1 个答案:

答案 0 :(得分:0)

首先,我需要确保你理解一些非常基本的东西:

文件 nothing 与此无关

您正在使用类对象,而不是文件。您可以在屏幕上同时显示多个 public Form1() { InitializeComponent(); Task t = new Task(Repopulate); t.Start(); // some other work here t.Wait(); //completes prematurely } async void Repopulate() { var query = ParseObject.GetQuery("Offer"); IEnumerable<ParseObject> results = await query.FindAsync(); if (TitleList == null) TitleList = new List<string>(); foreach (ParseObject po in results) TitleList.Add(po.Get<string>("title")); } ,并且没有理由将此表单放在名为ExtractDescriptorsForm的文件中。实际上,您可以将ExtractDescriptorsForm.csExtractDescriptorsForm类定义放在同一个文件中。

了解这一点,并学好它,否则你将难以有效地编写代码。

就此而言......对于这个问题,VisualizeFrom对象试图在VisualizeFrom对象中查找Paths属性...但是哪个对象?当你需要考虑类的实例时,你在这里使用类名。

我看到您尝试创建新ExtractDescriptorsForm对象的注释。这可能是个错误。您可能已经在程序中的某个地方已经有一个实例,可能是由Visual Studio为您提供的代码创建的。您需要找到现有的参考。