예제 #1
0
        public static bool TryCreate(int part, string name, string type, string value, out Handle handle)
        {
            HandleType handleType;
            int        data1;
            float      data2;

            handle = null;

            if (!Enum.TryParse(name, true, out handleType))
            {
                return(false);
            }

            data1 = (string.IsNullOrWhiteSpace(type)) ? 0 : HandleCreator.ParseOperators(handleType, type);

            if (string.IsNullOrWhiteSpace(value))
            {
                data2 = 0.0f;
            }
            else if (!float.TryParse(value, out data2))
            {
                return(false);
            }

            handle = new Handle(part, handleType, data1, data2);
            return(true);
        }
예제 #2
0
        /// <summary>
        /// ハンドル名、タイプ、値から新しいハンドルを生成します。
        /// </summary>
        /// <param name="name">ハンドル名。</param>
        /// <param name="type">タイプ。</param>
        /// <param name="value">値。</param>
        /// <returns></returns>
        public static Handle Create(string name, string type, string value)
        {
            HandleType handleType;
            int        data1;
            float      data2;

            if (!Enum.TryParse(name, true, out handleType))
            {
                throw new ArgumentException("ハンドル名の変換に失敗しました。", "name");
            }

            data1 = (string.IsNullOrWhiteSpace(type)) ? 0 : HandleCreator.ParseOperators(handleType, type);

            if (string.IsNullOrWhiteSpace(value))
            {
                data2 = 0.0f;
            }
            else if (!float.TryParse(value, out data2))
            {
                throw new ArgumentException("データ値の変換に失敗しました。", "value");
            }

            return(new Handle(0, handleType, data1, data2));
        }