我有一个列表,我试图从一个类传递到另一个类。这是代码:
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获取null值。我做错了什么?
更新了将编译的代码:
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;
}
}
}
答案 0 :(得分:0)
从代码中,我看到你必须首先在Class2中创建类“Class1”的实例,因为List实例是在Class1的构造函数中创建的。
只需调用Class1.MyList就不会初始化“MyList”,你总是会得到null。
答案 1 :(得分: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;
}
}