为什么这两个List <string>总是包含相同数量的项目?

时间:2016-11-23 15:48:15

标签: c#

我有一个非常简单的程序,由于某种原因让我难过。我把它放下来,今天早上又回来了,我仍然难倒。首先,我知道这不是一个理想的解决方案。我有两种形式:Main和Log。 Main表单有一个按钮,单击时会添加到List _debugLog。单击btnDebug时,它会打开日志表单,并将_debugLog传递给它。一切都很好,计时器设置和运行,一切正常。每2.5秒触发一次事件log.UpdateLog(),以使用更新的日志更新日志表单。但是,mainFormLog.Count和_log.Count总是相同的,并且当在主窗体上单击btnAdd时它们会同时增加。 _log如何从tick事件中获得新的_debugLog(mainFormLog)?

export const insert = new ValidatedMethod({
    name                  : 'projects.insert',
    mixins                : [simpleSchemaMixin],
    schema                : Projects.simpleSchema().pick([
        'name'
    ]),
    schemaValidatorOptions: {
        clean : true,
        filter: false
    },
    run({name}) {
        return Projects.insert({
            name
        }, null);
    },
});

2 个答案:

答案 0 :(得分:3)

好吧,你将列表的引用从Main传递给Log,所以它实际上是同一个列表。

如果您想要一个单独的列表,使用Main中的列表进行初始化,您可以使用:

compile 'com.google.android.gms:play-services-location:8.1.0'

也许this有助于理解变量和引用之间的区别:

  

对于值类型,值是信息本身。供参考   类型,该值是一个引用,可能是null或可能是一种方式   导航到包含信息的对象。

     

例如,将变量视为一张纸。它可能   有值“5”或“假”写在上面,但它不能有我的   房子......它必须有我家的方向。那些   方向相当于参考。特别是两个   人们可能会有不同的纸张包含相同的纸张   到我家的方向 - 如果有人遵循这些指示   把我的房子涂成红色,然后第二个人会看到那个变化   太。如果他们在纸上只有我房子的单独照片,   然后一个人给他们的纸着色不会改变另一个人   人的论文。

答案 1 :(得分:0)

您的所有变量_debugLogmainFormLog_log都指向内存中的相同列表。您只创建了一个列表,当您为该列表分配新变量时,它只是指向内存中某个位置的指针,它不会自动创建列表的新副本。