public static T Clone <T>(this T e) where T : RoutedEventArgs { var clonedEvent = (T)MemberwiseCloneMethod.Invoke(e, null); return(clonedEvent); }
/// <summary> /// 创建当前 Object 的浅表副本。同 Object.MemberwiseClone 方法。 /// 该方法创建一个浅表副本,方法是创建一个新对象,然后将当前对象的非静态字段复制到该新对象。 /// 如果字段是值类型的,则对该字段执行逐位复制。 如果字段是引用类型,则复制引用但不复制引用的对象;因此,原始对象及其复本引用同一对象。 /// </summary> /// <param name="_this">要执行复制操作的对象。</param> /// <returns></returns> public static TSource Clone <TSource>(this TSource _this) { if (_this == null) { return(default(TSource)); } if (_this.GetType().IsValueType) { return(_this); } return((TSource)MemberwiseCloneMethod.Invoke(_this, null)); }