为什么这个程序的输出不是我的想法

亚米尔

我对该程序的输出感到困惑。从代码来看,这是一个真实的场景,但是我设法将其简化为以下内容:

class Program
{
    static void Main(string[] args)
    {
        Dummy obj = new Dummy();
        obj.FillList();
        obj.MyPublicMethod();

    }
}

public class Dummy
{
    public Dummy()
    {
        NamesCollection = new List<string>();
    }
    public ICollection<string> NamesCollection { get; set; }

    private List<string> _names;
    public List<string> Names
    {
        get
        {
            //return _names ??
            //      (_names = NamesCollection.ToList());

            if (ReferenceEquals(_names, null))
            {
                _names = NamesCollection.ToList();
            }

            if (_names.Count != NamesCollection.Count)
            {
                _names.Clear();
                _names.Add("Aamir");
            }
            return _names;
        }
        set { _names = value; }
    }


    public void FillList()
    {
        this.NamesCollection.Add("Atif");
        this.NamesCollection.Add("Ali");
        this.NamesCollection.Add("haris");

        this.Names.Add("Asif");
    }

    public void MyPublicMethod()
    {
        foreach (var item in Names)
        {
            Console.WriteLine(item);
        }
        //I am thinking that output should be:
        //Atif   
        //Ali   
        //haris
        //Aamir  
        //But the output that I am getting is only:
        //Aamir
    }
}
Chris Shao

问题出在您的MyPublicMethod方法中。当您执行时foreach (var item in Names){},将获取get的执行方法Names_names.Count = 4但是NamesCollection.Count = 3所以_names要清除。并添加“ Aamir”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

关于为什么这个程序返回 987 是质数(当它不是质数时)的任何想法?

为什么这个钻石类继承输出不是我期望的?

为什么我得到这个程序的错误输出?

为什么这个程序输出 4?

为什么这个C程序的输出是这样的?

为什么这个程序没有输出?

为什么 npm 给我这个输出?

为什么我得到这个错误的输出?

为什么我得到这个输出

为什么我得到这个错误的输出?

为什么这个程序无限显示输出而不是显示一次并要求输入

不明白为什么这个程序给我这个输出。请给我解释一下

小程序输出不正确。为什么这个 String 变量没有做我想要的?

为什么这个程序的输出是无序的并写入标准输出?

为什么这个变量返回 undefined 而不是我的 Angular 13 应用程序中的对象?

为什么我的lisp函数会给我这个输出?

为什么这个输出在java程序打印值300

为什么这个python程序有以下输出?

为什么这个C程序错误地输出2的幂?

为什么这个html程序给出这样的输出?

为什么这个程序的输出是错误的?。数字的频率

为什么当我点击删除按钮时我一直得到这个 Total: £NaN 而不是 Total: £19.99 .? 南错误不会离开我想我没有更多的想法

为什么这个程序打印 3 而不是 2?

为什么我有这个输出结果?

我不明白为什么会给出这个输出?

空指针为什么我得到这个输出?

为什么我的 sqlserver 程序无法输出 %

为什么我的程序输出为零?

为什么我看到这个大数字而不是零?