Skip to main content
 首页 » 编程设计

c# 在静态构造函数中初始化泛型集合时出现 TypeInitializationException

2024年02月05日26exmyth

<分区>

在运行此代码时,我在第 9 行收到 System.TypeInitializationException 异常,在该代码中我尝试在类的静态构造函数中填充通用列表。

using System; 
using System.Collections.Generic; 
 
namespace ConsoleApplication5_static_constructor { 
    public static class DataRepository { 
        public static List<DefinedField> Tables; 
        static DataRepository() { 
            Console.WriteLine("static DataRepository constructor fired"); 
            Tables.Add(new DefinedField("ID"));  **//this is line 9** 
        } 
    } 
 
    public class DefinedField { 
        string _tableName; 
        public DefinedField(string tableName) { 
        _tableName = tableName; 
    } 
 
        public string TableName { 
            get { return _tableName; } 
            set { _tableName = value; } 
        } 
 
    } 
} 

调用代码:

using System.Collections.Generic; 
 
namespace ConsoleApplication5_static_constructor { 
    class Program { 
        static void Main(string[] args) { 
            List<DefinedField> x = DataRepository.Tables; 
        } 
    } 
} 

请问究竟是什么导致了错误,我该如何解决?

编辑:还有一个 NullReferenceException 类型的内部异常 静态构造函数是否不能初始化新对象?