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); }
/// <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)); }