代码之家  ›  专栏  ›  技术社区  ›  StealthRT

列表<string>中非.add()项的类构造函数

  •  0
  • StealthRT  · 技术社区  · 4 年前

    嘿,我只是想在类构造函数中的列表中添加一些值。

    问题是,它似乎不想在列表中添加字符串(即使它被定义为一个)。

    这是我当前的代码:

    namespace laptopWatcher
    {
       public partial class clockCountDown : Window
       {
           public class networkDetails
           {
               public string _ip { get; set; }
               public string _subnetMask { get; set; }
               public string _defaultGateway { get; set; }
               public string _machineName { get; set; }
               public string _hostName { get; set; }
               public string _userName { get; set; }
               public string _userDomainName { get; set; }
               public List<string> _userNames { get; set; }
           }
    
           private void getUserNames()
           {            
               SelectQuery query = new SelectQuery("Win32_UserAccount");
               ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
               List<string> _tmp = new List<string>();
    
               foreach (ManagementObject envVar in searcher.Get())
               {
                   Console.WriteLine(envVar["Name"].ToString());
                   _tmp.Add(envVar["Name"].ToString());
                   //theNetwork._userNames.Add(envVar["Name"].ToString());
               }
    
               theNetwork._userNames.AddRange(_tmp);
           }
       }    
    }
    

    我得到的错误是:

    系统。NullReferenceException:“对象引用未设置为 对象的实例。” laptopWatcher.lockCountDown.network详细信息_userNames.get返回 无效的。

    此错误位于此行:

    theNetwork._userNames.AddRange(_tmp);
    

    在我看来,这似乎是正确的?奥德韦斯利,我遗漏了什么,或者没有按正确的顺序做?

    2 回复  |  直到 4 年前
        1
  •  1
  •   StealthRT    4 年前

    就这么做

    theNetwork._userNames = new List<string>(_tmp);
    

    并阅读 this