使用静态字段时键入Initialization Exception

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TypeIntailization_Exception
{

    class TypeInit
    {
        // Static constructor
        static TypeInit()
        {

        }
        static readonly TypeInit instance = new TypeInit();
        public  static TypeInit Instance
        {
            get { return instance; }
        }
        TypeInit() { }
    }
    class TestTypeInit
    {
        static public void Main()
        {

            TypeInit t = TypeInit.Instance;

        }
    }

}
当运行这个我得到Type InTialization异常我怎么能避免这个...     
已邀请:
类初始化程序抛出异常时抛出TypeInitializationException(在您的示例中为
static TypeInit()
)。 您可以通过检查TypeInitializationException的
InnerException
属性来查看真正的异常:
static public void Main()
{
    try
    {
        TypeInit t = TypeInit.Instance;
    }
    catch (TypeInitializationException tiex)
    {
        var ex = tiex.InnerException;

        Console.WriteLine("Exception from type init: '{0}'", ex.Message);
    }
}
    
您在单例类的构造函数中抛出异常,因此当您尝试构造它时,它会抛出异常。如您所见,它会包含在TypeInitializationException中。 解决方案:除非被警告,否则不要抛出异常。     

要回复问题请先登录注册