/// <summary> /// parse the paramater from a string /// </summary> /// <param name="commaSepParameter"></param> /// <returns></returns> public static Parameter[] FromString(string commaSepParameter) { List <Parameter> resultParams = new List <Parameter>(); foreach (string parameter in commaSepParameter.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { string[] varParts = parameter.Split(variableSeparators, StringSplitOptions.RemoveEmptyEntries); int index = 0; Parameter.CallBy callby = Parameter.CallBy.Value; switch (varParts[0].Trim().ToLower()) { case "ref": callby = Parameter.CallBy.Reference; index++; break; case "readonly": callby = Parameter.CallBy.ReadOnly; index++; break; } resultParams.Add(new Parameter(varParts[index + 0].Trim(), varParts[index + 1].Trim(), callby)); } return(resultParams.ToArray()); }
public static void Main(string[] args) { CallBy cb = new CallBy(); int num1 = 40, num2 = 60; cb.CallByVal(num1, num2); Console.WriteLine("Values after calling by value: " + num1 + " " + num2); cb.CallByRef(ref num1, ref num2); Console.WriteLine("Values after calling by reference: " + num1 + " " + num2); }
/// <summary> /// constructor /// </summary> /// <param name="datatype">datatype of the parameter</param> /// <param name="name">name of the parameter</param> /// <param name="callby">whats the call by of the parameter</param> public Parameter(string datatype, string name, CallBy callby = CallBy.Value) : base(datatype, name) { this.callby = callby; }