使用属性将值从一个类传递到另一个类

时间:2014-02-27 18:48:12

标签: c# properties

我有一个列表,我试图从一个类传递到另一个类。这是代码:

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;
        }
    }
 }

2 个答案:

答案 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;
    }
}