将List传递给另一个类

Bla*_*tor 0 c# list

我知道这里的一些代码不清楚.我还在尝试尝试一些事情.我有三个问题,为什么在我的列表中添加字符串时会出现错误?如何将Class1中的List传递给我的主类?我的语法在List passArr中是否正确?不确定我是否应该在passArr的末尾添加括号.

class Class1
{
    public static List<string> passArr
    {
        get;
        set;
    }

    public static void passIt()
    {
        passArr.Add("A"); //Error: Object reference not set to an instance of an object
    }
}
Run Code Online (Sandbox Code Playgroud)

主类

class Program
{
    static void Main(string[] args)
    {
        Class1.passIt();
        List<string> passArr1 = Class1.passArr;
        foreach (string s in passArr1)
        {
            Console.WriteLine(s);
        }
        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

您永远不会创建列表,因此该passArr属性(顺便说一下,需要重命名)的值始终为null.你需要这样的东西:

Class1.passArr = new List<string>();
Run Code Online (Sandbox Code Playgroud)

在某一点.另一种方法是使其成为由具有初始化程序的字段支持的只读属性:

private static readonly List<string> passArr = new List<string>();
public static List<string> PassArr { get { return passArr; } }
Run Code Online (Sandbox Code Playgroud)

(这符合案例中的命名约定,但当然它仍然不是一个有意义的名称.)

  • 你想要Class1.PassArr,你的passArr现在是一个带有getter的私有列表 (3认同)