2014-02-27 48 views
-1

我有一个列表,我试图从一个类传递给另一个类。下面是代码:使用属性将值从一个类传递到另一个类

Class1 
{  
    internal Class1() 
    { 
     MyList = new List<string>(); 
    } 

    //Add stuff to list 
    MyList.Add("123"); 
    MyList.Add("234"); 

    public static IList<string> MyList { get; set; }     
} 

Class2 
{ 
    var getList = Class1.MyList; 
} 

每次我运行此我得到空值在Class2中的的GetList。我究竟做错了什么?

更新代码可以编译:

Class1 
{ 
    internal Class1() 
    { 
     MyList = new List<string>(); 
    } 

    static void Main1(string[] args) 
    { 
     Class1 c = new Class1(); 
     c.MyList.Add("123"); 
    } 

    public IList<string> MyList { get; set; } 
} 

namespace Test 
{ 
    Class2 
    { 
     static void Main(string[] args) 
     {      
      Class1 c = new Class1(); 
      var a = c.MyList; 
     } 
    } 
} 
+3

这不会编译 –

+0

请,不包括有关在问题的标题使用,除非它不会没有很有意义语言信息。标签用于此目的。 –

+0

这就是C#吗? –

回答

0

这段代码将做你想做的事,你不需要在你的类中声明一个静态的Main函数,而是使用构造函数初始化实例。

class Program 
{ 
    static void Main(string[] args) 
    { 
     Class2 instanceOfClass2 = new Class2(); 


    } 
} 

class Class1 
{ 
    public IList<string> MyList { get; set; } 

    internal Class1() 
    { 
     MyList = new List<string>(); 
     MyList.Add("123"); 
    } 
} 

class Class2 
{ 
    public Class2() 
    { 
     Class1 c = new Class1(); 
     var a = c.MyList; 
    } 
} 
0

从代码中,我所看到的是,你必须在Class2中首先创建的类“的Class1”的实例作为List实例中的Class1的创建构造器。

只需调用Class1.MyList将不会初始化“MyList”,并且您将始终得到空值。

+0

试图解决问题的一部分。我现在没有空,但仍然没有价值? – NoviceMe

+0

您应该创建一个将值添加到MyList属性的方法,或者只是将两行移入构造函数体中。 internal Class1() { MyList = new List (); //将东西添加到列表中 MyList.Add(“123”); MyList.Add(“234”); } –

相关问题