MutableUnit()
        {
            var ty = MutableParameter.Create("ty");

            ty.Values.Add(RawStringParameterValue.OfValue("g"));
            _params.Add(ty);
        }
예제 #2
0
        /// <summary>
        /// <see cref="IParameter"/>のミュータブルな実装を返します。
        /// </summary>
        /// <returns>ミュータブルなオブジェクト</returns>
        /// <param name="self"></param>
        /// <exception cref="ArgumentNullException"><paramref name="self"/>が<c>null</c>の場合</exception>
        public static MutableParameter AsMutable(this IParameter self)
        {
            var copy = MutableParameter.Create(self.Name);

            foreach (var value in self.Values)
            {
                if (value.Type == ParameterValueType.Tuple)
                {
                    var original = value.TupleValue;
                    if (original is Tuple)
                    {
                        copy.Values.Add(value);
                    }
                    else
                    {
                        copy.Values.Add(value.TupleValue.AsMutable());
                    }
                }
                else
                {
                    copy.Values.Add(value);
                }
            }
            return(copy);
        }