C#中的Var初始化

Ahm*_*med 2 c# var initialization

我写了一个使用OCR的小代码.我遇到了一个令人困惑的情况,即使代码到达初始化点之前,我的数据类型var变量也会被初始化.请看一下这个截图
在此输入图像描述

代码行RecAPIPlus.RecInitPlus(null,null);应该返回API初始化的状态.这行甚至没有执行,但我的状态变量似乎有一个默认值,即REC_OK ,上面的代码行应该在执行时返回.
任何人都可以解释这个的原因吗?这是完整的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Nuance.OmniPage.CSDK;
namespace OmniPage
{
    class Program
    {
        static void Main(string[] args)
        {

            try
            {

                Console.WriteLine(Nuance.OmniPage.CSDK.ZONETYPE.WT_AUTO);



                var status=RecAPIPlus.RecInitPlus(null,null);
                IntPtr a;
                var output = RecAPI.kRecLoadImgF(0, "out.txt", out a, 1);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Pat*_*man 5

我猜这个status字段的数据类型是enum.枚举的第一个值是默认值(如果枚举未编号,则0值为).

var只是意味着"使用从该方法返回的数据类型(或一般的赋值).所以var这里只意味着"返回的枚举类型".

这意味着if REC_OK是枚举中的第一个值,它是该字段的默认值.枚举不能为空值,因此它显示默认值.

我看到破发点还没有到来.它仍然显示范围中那些未经过编辑的变量的当前状态.这只是一个Visual Studio的事情.