检查对象是否已实例化

Dav*_*ave 9 .net c# instantiation

我有一个由许多其他物体组成的物体!我试图找到其中一个属性(枚举)的值,但不能.

现在,通常如果我想检查一个对象是否为null我可以做

if (object == null) 
Run Code Online (Sandbox Code Playgroud)

但这会导致同样的错误.

我试过了

if (object.Equals(null)) and the same error.
Run Code Online (Sandbox Code Playgroud)

我得到的错误消息是objectName抛出异常:System.NullReferenceException:对象引用未设置为对象的实例..

我正在尝试确定我的对象是否已实例化.现在,我可以坚持尝试捕捉,如果错误然后我知道它不是,但对我来说这感觉非常错误(虽然我可能没有选择).

我遇到的另一个问题是这个项目不是我的,对每个人来说都是一个黑盒子,因此我无法对原始对象进行任何更改!这意味着,我拥有的只是我所拥有的,一个可能会或可能不会被实例化的对象,我需要一种方式来讲述.

除了try catch之外,我还有其他选择吗?

编辑

所以,对象是

public partial class SaveBundleResponse 
{
    SaveBundleResponseHeader header;
}

public partial class SaveBundleResponseHeader 
{      
        private SaveBundleResponseHeaderStatus status;
}

public enum SaveBundleResponseHeaderStatus 
{        
        Success, Fail, OK, OtherStates
}
Run Code Online (Sandbox Code Playgroud)

因此,最初创建SaveBundleResponse,然后实例通过"工作流"样式环境,并且每个属性在工作流程更深入时变为"填充/更新"等.但是,在少数情况下,永远不会设置枚举.

问题是,我需要知道枚举的值(或者如果它是null).

我试图使用的代码是

        if (saveBundleResponse.Header.Status // what ever happens, it fails at this point as Status is not initiated.
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 6

if (saveBundleResponse != null)
{
    var header = saveBundleResponse.Header;
    if (header != null)
    {
        var status = header.Status;
    }
}
Run Code Online (Sandbox Code Playgroud)