Is there any way to make an out parameter of a method optional? I have a method that needs several parameters to return null most of the time, but sometimes they will have a value. I am trying to find out if there is a better way to accomplish this than by setting the values to null first, or setting them to null after the if/else. This may be the only way to do it, but it would be nice if there were optional out parameters or something equivalent. Here is the code:
    private static void GetInitInfo(string initLine, string ncPointType, out double? relinquishDefault, out bool? ignoreRelinquishDefault, out bool? closedForStart, out bool? adjustDisabled)
    {
        relinquishDefault = null;
        ignoreRelinquishDefault = null;
        closedForStart = null;
        adjustDisabled = null;
        switch (ncPointType)
        {
            case "MSD":
                adjustDisabled = LastToken<bool?>(initLine);
                break;
            case "BO":
                relinquishDefault = SecondToken<double>(initLine);
                closedForStart = ThirdToken<bool?>(initLine);
                ignoreRelinquishDefault = !ForthToken<bool?>(initLine);//ignoreRelDef would be reverse of use initial value
                break;
            case "MSO":
                closedForStart = SecondToken<bool?>(initLine);
                relinquishDefault = ThirdToken<double>(initLine);
                ignoreRelinquishDefault = !ForthToken<bool?>(initLine);//ignoreRelDef would be reverse of use initial value
                break;
            case "AD":
                relinquishDefault = ThirdToken<double>(initLine);
                ignoreRelinquishDefault = false;
                break;
            case "BD":
                relinquishDefault = SecondToken<double>(initLine);
                adjustDisabled = LastToken<bool?>(initLine);
                ignoreRelinquishDefault = false;
                break;
            case "AOS":
                relinquishDefault = FirstToken<double>(initLine);
                ignoreRelinquishDefault = !ThirdToken<bool?>(initLine);//ignoreRelDef would be reverse of use initial value
                break;
        }
    }
 
     
     
     
    