自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编程的艺术世界 - Bruce Lee

曾经是一个只懂得绘画艺术的我,如今追求编程的艺术.

  • 博客(81)
  • 资源 (11)
  • 收藏
  • 关注

原创 我已搬家到博客园:http://coolcode.cnblogs.com/

我已搬家到博客园:http://coolcode.cnblogs.com/ 这可能是这里的最后一篇日志,实在是对这里的博客服务器彻底失望,虽然之前有点留恋,但现在已经无语,不想再在这里浪费我的时间了,我去氛围更好博客园安家。 欢迎热爱.Net技术的朋友来做客。http://coolcode.cnblogs.com/最后附上里安纳道的照片来做个告别,再见了,CSDN! 

2009-05-24 20:31:00 2792 1

原创 log4net 的配置和使用方法

经常需要log4net为我的项目记下一些调试和错误信息,好让我有些时候不用断点debug,何况有些情况下很难或者根本不能debug到。例如,一个循环里面的子语句,或者某些概率下才出现的错误等等。 这里给出log4net的配置和使用方法,主要是因为根本不能记住这些配置语句,贴上来方便以后使用。 配置文件主要是这样: configSections> sec

2009-05-19 18:35:00 1332

原创 Coolite Cool Study 3 MVC + Coolite 的例子

Coolite Cool Study 3 MVC + Coolite 的例子 啊,开始以为MVC+Coolite结合的例子没什么难度,但原来Coolite在MVC中需要特定设置一下某些属性才行,费了两个小时才算大功告成,具体请看下文。还是先把这个例子的效果贴上来再说。 因为默认的 MVC 的样式文件里对于的 table 和 其他相关样式(h1~h6) 与Coolite有冲突,会导致Grid

2009-05-16 17:10:00 2544 5

原创 Coolite Cool Study 2 同时更新多个Tab

Coolite Cool Study 2 同时更新多个Tab 前段时间有一个需求是这样子的——录入一个查询条件, 出来的查询结果是多张页面。不知道有没朋友遇到这个问题。 展现的效果大概是这个样子:   当时用Coolite做测试遇到两个问题: 1. 传递给Tab的Url参数会莫名其妙的被添加上其他字符(到Coolite论坛上问了一下估计是bug)。正常情况下,google搜索u

2009-05-16 12:30:00 1256

原创 Coolite Cool Study 1 在Grid中用ComboBox 来编辑数据

Coolite Cool Study 1 在Grid中用ComboBox 来编辑数据 作为Coolite的第一个教程,我想展现给大家能够体现Coolite强大的例子(当然也比官方例子稍微复杂一点)。官方有一个关于Grid CURD 的例子:http://examples.coolite.com/Examples/GridPanel/WebService_Connections/Handle

2009-05-16 10:50:00 2755 3

原创 使用Zoundry写Blog

Zoundry是用Python实现的一个离线撰写Blog工具, 支持Community Servedr、blogger.com、Wordpress、Movable Type、LiveJournal、TypePad、MSNSpaces、Custom Atom等系统,可以很方便的把一篇文章发布到自己的多个Blog上。Zoundry使用起来非常简单,我就不多说了。CSDN博客在Zoundry中登

2009-05-16 10:35:00 773 2

原创 如何用Live Writer 发表Csdn 博客文章

Microsoft发布的Windows Live Writer是一款管理个人博客的客户端工具。Windows Live Writer不光支持Windows Live Spaces的用户使用,同时支持现在网络上的其他流行的一系列的Blog内容管理系统。 用Windows Live Writer写CSDN博客的步骤如下: 安装Windows Live Writer后,会有一个添加账户的向导

2009-05-16 02:53:00 1045

原创 Coolite 交流

近来不知什么原因,发现国人有不少开始学习Coolite了,对于有些人可能不知道什么是Coolite,这里先简单介绍一下:Coolite Toolkit 简介 Coolite Toolkit 是一个支持ASP.NET AJAX的Web控件。 Coolite Toolkit是基于跨浏览器的ExtJS 库开发而来的,并且简化了开发步骤,并且包含有丰富的Ajax运用。 Coolite Toolkit和

2009-05-12 09:29:00 7685 1

转载 关于IIS操作Excel的问题详细解决方案

1.打开excel,按alt + F11,关闭excel和VBA;2.单击开始,单击运行,然后键入DCOMCNFG;3.点击组件服务-计算机-我的电脑-DCOM配置,这时弹出一个问注册的窗口,确定注册。这时如果一切恢复正常了,不用往下操作了。 关于权限问题,具体解决方法如下:1:在服务器上安装office的Excel软件.2:在"开始"->"运行"中输入dcom

2009-04-28 14:57:00 5859

原创 BLReflection - 反射常用操作类

BLReflection 是我自己写的一个关于反射操作的类,在我之前关于linq的文章有用到, 希望有需要的朋友可以看看。  using System;using System.Collections.Generic;using System.Linq;using System.Text; using System.Reflection; namespa

2009-04-20 13:39:00 974 1

转载 更优雅的服务端验证(.Net扩展方法的应用)

 更优雅的服务端验证(.Net扩展方法的应用)背景我们都知道ENTLIB有VAB,也知道如果不在乎大量的XML损视力的话,VAB非常非常优雅,但是在不大的项目中,很多情况下我们依旧自己写着验证的代码所以在这篇文章中,打算展示一下学习.NET一年半以来,写验证代码的各个阶段,并展示一种个人觉得比较优雅的验证代码的写法,如果大家有别的方案,也请提出来与大家分享哦第一阶段--强写

2009-04-01 10:00:00 1416 1

转载 比较Cool 的客户端和服务端验证 (链式编程)

从丑陋到优雅,让代码越变越美(客户端检测方法思考) 大家都知道,客户端检测不单可以让用户获得更好的体验,而且可以通过校验数据大大减少客户端和服务器端的往返次数,减少服务器负担。在这里,小弟打算回顾一下自己在客户端检测方面的学习历程和采用方法,如果大家有什么更好的方法或者建议,欢迎提出来共享!共同进步!为了方便举例和说明,先构建一个简单的html页面,如下: htmlCode h

2009-04-01 09:41:00 1675

转载 Asp.Net Session FAQ

Asp.Net Session FAQ 作者:Patrick Y. Ng原文地址:http://forums.asp.net/7504/ShowPost.aspx译者:Tony Qu (来自BluePrint翻译团队) 本文被分成两部分:1.“理解Session State模式”——帮助你理解三种Session State的不同之处2. FAQ1.理解Session State模式

2009-03-24 10:05:00 752

原创 Microsoft Expression Blend 3 Preview

 Microsoft Expression Blend 3  听说可以对xaml 和 .Net 代码有智能感应了,设计时可以导入一个Xml数据源来查看显示效果,cool!赶快晚上下载看看。下载地址:http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&Sr

2009-03-20 14:54:00 1047

原创 I Can See You 远程控制软件最新下载地址(含所有设计文档)

 I Can See You 远程控制软件最新下载地址(含所有设计文档)   I Can See You 远程控制软件已经发布差不多2年,偶尔还有人问我要源代码,或者问跟这个软件相关的问题,所以就重新发布到更多人关注的地方codeplex 。 这次把所有的文档(包括详细设计文档)都发布上去了,因为有不少做毕业设计的人就是想要这个(嘿嘿)。  下载地址:http://icanseey

2009-03-20 09:09:00 3816 4

原创 Silverlight 2.0 到 3.0 的改变

  刚刚安装了Silverlight3.0, 赶紧看一下SDK里的Changs.docx 看看有什么新增功能没,结果发现只有4个改变:  1.   OpenFileDialog.ShowDialog() can now only be opened from a user initiated event  2.   HyperlinkButton now navigates the entir

2009-03-19 23:30:00 662 1

原创 指纹识别Demo 源代码下载

   很多人留言说要指纹识别系统的源代码,苦于本系统(不能叫系统,改叫Demo)难登大堂,怕发出来给人笑话。 今日我终于头脑开窍了, 找了半天把代码发到codeplex 去了。 随便也看了一下以前的代码,发现是挺可笑的,毕竟当时水平也仅此而已。但有一点不得不佩服自己的就是那时候写的代码太认真了,每一行注释的写的清清楚楚,现在?惭愧呀~都是企业赶工给害得。   PS:这个指纹识别Demo是我

2009-03-19 20:48:00 2339 3

原创 Silverlight Mar 2009 Bete 版 发布

Silverlight Mar 2009 Bete 版 发布 Silverlight 终于在3月16日发布了3.0Beta版, 下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=11dc7151-dbd6-4e39-878f-5081863cbb5d&displaylang=en  SDK 下载:http:/

2009-03-19 18:10:00 695

转载 VB6 与 .NET 联合

VB6 与 .NET 联合前言:以前读大一的时候还是蛮喜欢VB6的, 学了C#以后就总是想着如何让VB6和C#的组件可以互相调用,可惜当时没有看到这篇好文章。现在VB6基本上不用了(在公司偶尔还写一下),但还是把这篇文章贴出来,已被以后可能用到。 因为公司之前有个技术问题问我——“如何让.NET的组件在Linux上跑?”。 我真想问:可以吗?至少现在不可以。如果有谁知道可以的话,请发个过来

2009-03-12 12:27:00 1556

转载 Silverlight 框架

Silverlight 框架     刚开始接触Silverlight就有幸看到guozili 关于“基于Silverlight的精简框架”的博文,不但言简意赅,而且实现的效果也是夺目三分。我已经在其基础上开发了自己的Siliverlight作品,当时感觉他的框架数据服务部分稍微麻烦了点,因为直接添加web 引用的方法来访问web services 或者 wcf 实现数据交互已经相当简单了

2009-02-20 13:59:00 4186 4

转载 开源框架:快速反射类库(Fast Reflection Library)

 开源框架:快速反射类库(Fast Reflection Library)原文地址:http://www.cnblogs.com/JeffreyZhao/archive/2009/02/01/Fast-Reflection-Library.html 全文英文版:Fast Reflection Library  这是我在CodePlex上创建的一个项目,它的网址是http://www

2009-02-18 16:26:00 3546

转载 8步之内创建布署一个Silverlight Mesh-enabled web应用

    【翻译】 8步之内创建布署一个Silverlight Mesh-enabled web应用      (转者)前言:很久之前就听说Azure Services 了,也成功申请了token,可是开发环境去无法成功搭建。原因是Azure Services 要求环境是Vista+IIS7,我的NoteBook 装的是Vista Home Basis 无法安装IIS7

2009-02-18 08:58:00 1024

转载 Silverlight 里如何实现隐式样式

  Silverlight 里如何实现隐式样式,ImplicitStyleManager 的实现思想 在 WPF 中,我们可以方便的在全局范围定义一个样式,就可以应用到所有这种类型的对象,这就是所谓的隐式样式(implicit Style),比如:Window x:Class="WpfImplicitStyle.Window1"    xmlns="http://sche

2009-02-17 13:33:00 903

转载 [Silverlight] 关于线程调用的扩展方法

  [Silverlight] 关于线程调用的扩展方法 Silverlight 里需要考虑异步调用的问题,比较麻烦。所以写了两个简单的扩展方法。一个方法是为了更新 UI 控件。可以自动在不同的调用环境下判断是否需要 Invoke, 从而安全的调用控件相关的方法。另一个方法的目的是把任务放到 ThreadPool 里去等待后续的异步执行。代码如下:using Sys

2009-02-17 13:31:00 602

原创 支持Silverlight +Json 的Json.Net

 很早就开始用James Newton 的 Json.Net 了,但到今天才知道它支持silverlight,原来作者已经早在2008年8月25日就发出支持silverlight的Json.Net3.0版了。这里引用该作者的Blog,也为了方便我以后跟进: Json.NETThe Json.NET library makes working with JavaScript

2009-02-17 09:14:00 1943

原创 Silverlight 最佳学习Blog (持续更新中...)

Silverlight 最佳学习Blog 中文Blog: TerryLee:http://www.cnblogs.com/Terrylee/category/78190.html我和未来有个约会: http://www.cnblogs.com/nasa/category/82877.html笑看风云淡:http://www.cnblogs.com/ibillguo/cate

2009-02-16 21:59:00 2326

原创 精彩的 Silverlight 开源项目(持续更新中...)

 精彩的 Silverlight 开源项目 (持续更新中...)   Silverlight 物理模型 http://www.codeplex.com/FarseerPhysics demo: http://www.farseergames.com/Games/WaterDemo/WaterDemo.aspxPhysics Helper 是Silverl

2009-02-16 21:32:00 8217

原创 更好用的Silverlight 控件

Silverlight 控件 介绍silverlight控件,最先要介绍的当然是:Silverlight Toolkit Silverlight Toolkit http://www.codeplex.com/Silverlight demo:http://silverlight.net/samples/sl2/toolkitcontrolsamples/r

2009-02-16 09:13:00 1188

转载 Path(路径)标记语法

 Path(路径)标记语法本主题描述画路径的 Extensible Application Markup Language (XAML) 使用语法,Silverlight 支持强大而复杂的微语言供我们画出几何路径。 本主题包含以下小节: 先决条件 路径微语言

2009-02-13 09:20:00 3392 1

转载 Silverlight 基本形状和画图概述

 Silverlight 基本形状和画图概述本主题概述如何使用 Shape 对象进行画图。Shape 是一种 UIElement 类型,允许你在屏幕上画出基本图形。由于是 UI 元素, Shape 对象可以在 Canvas 元素中使用。 本主题包含以下小节: Shape 对象 使用

2009-02-13 09:19:00 2713

转载 How to export only visible colm. in GridPanel

 <!-- function setFields(grid, hiddenFormat, hiddenColConfig, format) { hiddenFormat.setValue(format); // Calculate hidden columns. var hidden = ; var i;

2009-02-13 09:16:00 678

转载 在asp.net中使用session常见问题集锦

 问:为什么Session在有些机器上偶尔会丢失?答:可能和机器的环境有关系,比如:防火墙或者杀毒软件等,尝试关闭防火墙。问:为什么当调用Session.Abandon时并没有激发Session_End方法?答:首先Session_End方法只支持InProc(进程内的)类型的Session。其次要激发Session_End方法,必须存在Session(即系统中已经使用Session了),

2009-02-13 09:14:00 813 1

原创 网站推荐

 Convert VB.net to C# or C# to VB.net (Support .Net3.5) http://www.developerfusion.com/tools/convert/csharp-to-vb/ Coolite (是 extjs 的.Net版中最好的一个)http://examples.coolite.com/

2009-02-13 09:07:00 519

原创 Deep Clone Object

 public static object CloneObject(object obj){ using (MemoryStream memStream = new MemoryStream()) { BinaryFormatter binaryFormatter = new BinaryFormatter(null, n

2009-02-13 09:05:00 716

原创 Funny Linq Part4:通用的级联删除

Funny Linq Part4:通用的级联删除        级联删除(cascading deletes)从父表中删除外键时也会删除子表中的行。如果在一个表的主键列上删除了一些行,那么在启用级联删除的情况下,将在相关表的任何外键列上删除相同信息。        ///         /// 级联删除(从父表中删除外键时也会删除子表中的行)        ///         ///    

2008-09-08 20:48:00 1451

原创 Funny Linq Part3: Linq To DataTable

Funny Linq Part3: Linq  To DataTable    这篇文章某些地方还是承接第一篇文章    Linq已经让我们感觉不到Query的难点, 它让我们很容易的实现高难度的Query。 或许剩下的问题, 也许是很简单的问题就是如何保存这些Query结果?        例如:            var _result = DAL.Utility.

2008-08-20 00:08:00 3655 7

原创 Funny Linq Part2: 建一个 Linq 数据库通用的操作类 (下)

 Funny Linq Part2: 建一个 Linq 数据库通用的操作类 (下)    上一篇文章介绍了如何实现一个通用的Insert操作, 即直接 Utility.Insert(xxx) 就可以实现了。那么, 大家可能就顺理成章的想到是否也可以实现通用的Update, Delete , Query 操作, 答案是肯定的!    下面就让我们来对上一篇提到的DAL扩展一下:   

2008-08-19 22:48:00 2086 4

原创 Funny Linq Part1: 建一个 Linq 数据库通用的操作类 (上)

Funny Linq Part1: 建一个 Linq 数据库通用的操作类 (上)    很久之前,在我刚学数据库编程的时候,就希望直接建一个  数据库通用的操作类, 即写 Insert(类实例), 那么剩下的工作就交给底层代码来实现如何Insert。 现在接触了Linq, 感觉离这个梦想的实现已经不远了。    下面就分享一下我的源代码,很简单,估计刚学Linq的人也能看懂。    1

2008-08-19 21:49:00 233 2

原创 csdn 终于可以上了!

csdn 断了1个多礼拜,刚刚终于可以登陆了 !记住这一刻:2008年08月18日下午3点08分!我又可以继续写Blog因为我想写关于WCF+Linq+MVC的文章

2008-08-18 15:15:00 798

原创 通过Invoke反射类的private方法

通过Invoke反射类的private方法前些时间需要写个方法来handle一个类的所有private方法,晚上查了一大片都没有找到,有些无聊的人竟然危言耸听地说不可能handle到private方法。最后还是自己写了一个出来,供有需要的人分享一下。 using System;using System.Collections.Generic;using

2008-07-08 11:12:00 1955

八数码的3种算法解答(C#2003版源代码)

代码是为了应付人工智能的实验而编写的 (A* 算法解决八数码问题我已经研究过了,不要砸这个来)<br/>* 在 赛扬D2.1G 的机器上测试,算法的解答时间不超过0.1秒。 最好优先搜索算法的解答时间一般在0.05秒左右。 里面还可以演示八数码问题的从初始态到目标状态的过程。 <br/>上次已经上传过C#2005版源代码,这次是C#03的,主要是学校的机器没有只是安装VS.NET03,不得不把05代码改成03的,不过转换的不是很多,很快就OK了。发上来给那些还是在用03的机器,毕竟05占得资源必较多,特别是ASP.NET,内存最好要1G才够它吃。

2007-06-18

八数码的3种算法解答(C#2005源代码)

本代码是为了应付人工智能的实验而编写的,写的潦草请不要介意。我又是通过这代码来“引玉”,相信<br> * 看过我编写的黑白棋源代码的人应该知道“引玉”是什么意思。如果你有“玉”(什么更高效的算法能在<br> * 更短的时间内求得结果,或者博弈方面的),就欢迎“砸”过来--fengart@126.com,我会很感激!<br> * (A* 算法解决八数码问题我已经研究过了,不要砸这个来)<br> * 在 赛扬D2.1G 的机器上测试,算法的解答时间不超过0.1秒。 最好优先搜索算法的解答时间一般在0.05秒左右。 里面还可以演示八数码问题的从初始态到目标状态的过程。

2007-06-17

Monkey黑白棋 (C#源代码)

整体来说,这份代码还是能够实现了黑白棋的智能下棋功能,而且也不弱,我想在国内应该找不到.NET版、而且高智能的黑白棋源代码了。 本来没打算发源代码,吝啬?主要我怕部分“懒人”修改本程序的界面,然后作为自己的东东去发布,还美其名曰“原创”(汗!),我想你不会是这样的人。 发源代码的目的是抛砖引玉(小弟我抛砖,有玉的尽量砸过来)。AI算法是通用的,并不局限于某种棋,你可以取其精华去其糟粕,少走很多不必要的弯路。 源码也方便了那些一心只想搞算法而不想花心思在界面上的朋友。 喜欢的就拍拍手掌,不喜欢的就拍拍脚掌!

2007-06-10

Monkey黑白棋V2.0 (安装包,适合没装framework的电脑)

软件特点:(自卖自夸,呵呵!!)1. 界面美观大方2. 带有翻棋动画3. 具有开局库4. 电脑智能下棋5. 有多种难度选择6. 内带黑白棋规则教程7. 棋力相对上一个版本已经大增上次发布了 Monkey黑白棋2.0版,现在的也是2.0版,但做成安装形式,因为考虑到没有安装framework的朋友可能不知道怎么去用,此安装包可以检测用户是否安装framework。 现已发现Monkey2.0版的有个AI上的问题,主要是评估函数弄了一点错,导致它除了“猴王”以外的其它级别的棋力完全退化。专业人士就不要下了,初学者(一般也赢不了,尽管Monkey的AI是有些问题)如果觉得没所谓,就下吧。但不要认为Monkey的AI就是如此。

2007-06-06

Monkey黑白棋V2.0 (fengart)

其棋力已经大增,能够打败国内不少软件,但搜索得较慢,主要是因为底层的数据结构和剪枝算法还没完善(也跟开发语言有一点关系)。界面上修改为标准的程序界面(响应软件开发里的易操作性),增加翻棋动画,但有点闪烁。棋盘结构已经改用一维数组,增加了开局库(但开局库制作的不是很好,有时候还不如直接搜索,你可以在程序里选择是否使用开局库),终局搜索调用C++编写的MTD算法,所以终局搜索深度和速度都很可观。棋盘评价函数也改了一点,但跟大多黑白棋软件不同的是,没有采用基于模板的评价函数,我的评价函数里面的权重是采用把程序自我对战的结果保存下来,并通过神经网络训练的方法得出(另外手动调整一些)。 可能也因为这个原因,搜索速度很难提升。但如果叫我去研究黑白棋模板,然后编写相应程序去训练模板,估计我大学毕业了还不能完成像现在这样棋力的程序。

2007-06-04

ICanSeeYou远程控制软件(所有C#源代码)

ICanSeeYou远程控制软件(所有C#源代码)另外附有说明文档。原程序(安装包)的下载地址:http://download1.csdn.net/down3/20070428/28022416404.rar源代码说明:IDE(集成开发环境):Microsoft Visual Studio .NET 2005使用C#作为主要开发语言,统一编程习惯。关于C#编程习惯可以查看另外一份文档 《 C#编程规范 》。C#规范制定原则 1 方便代码的交流和维护。 2 不影响编码的效率,不与大众习惯冲突。 3 使代码更美观、阅读更方便。 4 使代码的逻辑更清晰、更易于理解。代码重用性通过结合程序员定义的类和定义良好、精心测试、文档完整、可移植和用途广泛的FCL(重用框架类库),开发者进行软件构建,这种形式的软件重用加速了功能强大和高质量软件的开发。而本项目定义了不少可重用的代码,例如文件的各种操作,鼠标的模拟点击,键盘的模拟按键按下,关机,屏幕截取,API函数库,网络的基本操作等。

2007-04-28

ICanSeeYou远程控制软件V1.0

INCU V1.0有以下几大功能: 1.远程桌面鼠标控制 2.远程驱动器文件浏览与上传下载 3.文本消息传递 4.远程关机 5.多线程一网段同时控制 6.客户端控制服务端升级更新 INCU V1.0的特点: 一、界面操作简单实用 二、适应复杂网络,实现跨网络控制 三、图像压缩率高,可适应各种带宽网络 四、安全性高 五、控制能力强

2007-04-28

外国人编写的IP控件(包含源代码,.NET 05版)

由C#语言编写,该IP控件很好的解决了关于MaskedTextBox显示IP的不足 ,你可以像调用一般控件那样来使用它,不用另外编写其它代码,非常方便。

2007-04-21

外国人编写的IP控件(包含源代码)

由C#语言编写,该IP控件很好的解决了关于MaskedTextBox显示IP的不足 ,你可以像调用一般控件那样来使用它,不用另外编写其它代码,非常方便。

2007-04-21

Monkey黑白棋(正式发布版)

本软件不用安装. 其中FengChessBoard.OthelloBoard.dll 为fengart自行编写的棋盘控件(包括下棋规则和棋盘结构),安装 VS.NET 2005 的朋友可以调用此控件来开发自己的黑白棋.至于此控件的使用说明会在以后blog上公布. 采用了AlaphBeta剪枝法,深度4至8 . 持白子的话,能够战胜不少黑白棋的软件

2007-04-20

Monkey黑白棋 (fengart)

采用了AlaphBeta剪枝法,深度4至8 .持白子的话,能够战胜不少黑白棋的软件.总的来说,它还是满不错的.

2007-04-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除