using PropertyChanged;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BDU.Models
{
    [AddINotifyPropertyChangedInterface]
    public class MethodModel
    {

        #region 构造函数

        public MethodModel()
        {
            
        }

        public MethodModel(MethodModel source)
        {
            if (source == null) return;

            Name = source.Name;
            FullName = source.FullName;

            // 深拷贝参数
            Parameters = new ObservableCollection<ParameterModel>(
                source.Parameters.Select(p => new ParameterModel(p)));
        }

        #endregion

        public string? Name { get; set; }

        public string? FullName { get; set; }

        public ObservableCollection<ParameterModel> Parameters { get; set; } = [];
    }
}
