唐朝程序员

我来自唐朝

最新评论

共2页: 1 2 下一页 
Re:2010考研冲刺必备 oo縼箻ㄗs.鋒 2011-10-19 11:31  
这么多资料能看完么???
Re:C#游戏外挂代码(转载) 掬一把月 2011-06-04 14:46  
请问...这是什么游戏的外挂啊...???
刚修改了关闭时间限制,看看明天还是否有日志报错了
IntCRM是为网络公司量身定制的一套crm系统:强大的客户校验及跟踪功能,完美的解决了销售人员撞单问题、优秀的合同预领功能及合同管理功能,解决了众多网络公司合同丢失、合同收款及员工合同管理防签私单问题。数据防拷贝为公司保障了数据的安全性。组织结构及功能权限完全自主设置,灵活性强。多模式的统计功能,让管理者能很好的掌握公司员工、部门、收入、支出的发展趋势。 IntCRM V2.7已发布,请联系试用,测试地址:http://www/intcrm/cn KeyWords:网络公司合同管理 网络公司客户管理 客户合同管理系统 网络公司客户合同管理系统 Create At:16:25:34
re: C#游戏外挂代码(转载) lhdisme 2009-07-01 09:48  
太好啦!学习学习!谢谢啦!
re: NOKIA诺基亚PC套件在2003系统上的安装方法 aaaaaaaaaaaaaaaaaaaaaaaaaaaa 2009-06-22 11:08  
试过,不行。不过还是感谢博主,学习了。
楼主,你的代码有问题吧
谢谢,真行!
下载了一个 Visual Studio Team System 2008 Team Suite 可惜sp1补丁一直打不上 不知道怎么搞的...!!!
高人啊!谢谢!
呵呵 搞定
谢谢楼主,问题已暂时解决。

谢谢楼主,问题已暂时解决。呵呵
想要
因噎废食的方法
请问下博主,我自己制作的bt种子,为什么用迅雷下载不了呢?迅雷的版本和配置都没有问题。难道是在做种的时候需要有一些针对性的设置吗?
谢谢!了解了。
谢谢楼主,不错
简直是乱搞,哪有这样写正则表达式。
公务员也得走后门,,哎
@小钟
谢谢小钟,不过明年就不考这个了。。失望了
加油,兄弟~
感谢博主分享.
re: Stream 和 Byte[]互操作 hpv 2008-02-04 11:41  
Stream的 Length属性不可读 bytes的初始大小不好设置。
谢谢了,好好研究研究
re: Stream 和 Byte[]互操作 大豆男生 2007-11-19 19:16  
如果 stream.CanRead = false 怎么办啊?
re: C# 操作Word文档(转) lanpeng 2007-11-02 10:46  
老哥,你的這段代碼幫了我的大忙.謝謝.
頂...............
多交流:
我的msn: andyfpf@gmail.com
re: 关于回车触发按钮事件 abcc 2007-10-24 10:35  
还是不行呀

6、Response.Redirect()方式
Response.Redirect("target.aspx?param1=1111?m2=2222")
接收页面: string str = Request["param1"]
这个是不是应该是:发送页面 Response.Redirect("target.aspx?param1=1111&param2=2222");
接受页面:使用
Response.Write(Request.QueryString["param2"]);
就是在页面打印出param2的值
Application也是应该使用 "[]",而不是"()"
"3、Session共享
发送页面:Session("param1") = "1111";
按收页面 string str = Session("param1").ToString(); ",是不是应该这样写:发送页面 Session["param1"]="1111';接受页面 string str=Session["param1"].ToString();
小木,只使用首字母?
9. 一般地,命名参数的时候加上TYPE. 这将增加代码的易读性
//正确:public class LinkedList<KeyType,DataType>{…}
//避免:public class LinkedList<K,T>{…}

=================================

对于泛型(Generic)而言,应该使用类型的首字母:
//正确的:
public class LinkedList <K , T > {...}
//避免:
public class LinkedList<KeyType , DataType> {...}
re: 深入浅出net泛型编程[转载] 唐朝程序员 2007-05-02 16:58  
深入浅出.NET泛型编程(2

7. 无限制的类型参数 

  如果你创建一个泛型数据结构或类,就象例3中的MyList,注意其中并没有约束你该使用什么类型来建立参数化类型。然而,这带来一些限制。如,你不能在参数化类型的实例中使用象
==!=或<等运算符,如: 


if (obj1 == obj2) … 


  象
==!=这样的运算符的实现对于值类型和引用类型都是不同的。如果随意地允许之,代码的行为可能很出乎你的意料。另外一种限制是缺省构造器的使用。例如,如果你编码象new T(),会出现一个编译错,因为并非所有的类都有一个无参数的构造器。如果你真正编码象new T()来创建一个对象,或者使用象==!=这样的运算符,情况会是怎样呢?你可以这样做,但首先要限制可被用于参数化类型的类型。读者可以自己先考虑如何实现之。 

  
8. 约束机制及其优点 

  一个泛型类允许你写自己的类而不必拘泥于任何类型,但允许你的类的使用者以后可以指定要使用的具体类型。通过对可能会用于参数化的类型的类型施加约束,这给你的编程带来很大的灵活性
--你可以控制建立你自己的类。让我们分析一个例子: 

  例5.需要约束:代码不会编译成功 


public static T Max<T>(T op1, T op2) 

 
if (op1.CompareTo(op2) < 0
  
return op1; 
 
return op2; 
}
 


  例5中的代码将产生一个编译错误: 


Error 
1 ’T’ does not contain a definition for ’CompareTo’ 


  假定我需要这种类型以支持CompareTo()方法的实现。我能够通过加以约束
--为参数化类型指定的类型必须要实现IComparable接口--来指定这一点。例6中的代码就是这样: 

  例6.指定一个约束 


public static T Max<T>(T op1, T op2) where T : IComparable 

 
if (op1.CompareTo(op2) < 0
  
return op1; 
 
return op2; 
}
 


  在例6中,我指定的约束是,用于参数化类型的类型必须继承自(实现)Icomparable。下面的约束是可以使用的: 

  where T : 
struct 类型必须是一种值类型(struct

  where T : 
class 类型必须是一种引用类型(class

  where T : 
new() 类型必须有一个无参数的构造器 

  where T : class_name 类型可以是class_name或者是它的一个子类 

  where T : interface_name 类型必须实现指定的接口 

  你可以指定约束的组合,就象: where T : IComparable, 
new()。这就是说,用于参数化类型的类型必须实现Icomparable接口并且必须有一个无参构造器。 

  
9. 继承与泛型 

  一个使用参数化类型的泛型类,象MyClass1<T>,称作开放结构的泛型。一个不使用参数化类型的泛型类,象MyClass1<
int>,称作封闭结构的泛型。 

  你可以从一个封闭结构的泛型进行派生;也就是说,你可以从另外一个称为MyClass1的类派生一个称为MyClass2的类,就象: 


public class MyClass2<T> : MyClass1<int> 


  你也可以从一个开放结构的泛型进行派生,如果类型被参数化的话,如: 


public class MyClass2<T> : MyClass2<T> 


  是有效的,但是 


public class MyClass2<T> : MyClass2<Y> 


  是无效的,这里Y是一个被参数化的类型。非泛型类可以从一个封闭结构的泛型类进行派生,但是不能从一个开放结构的泛型类派生。即: 


public class MyClass : MyClass1<int> 


  是有效的, 但是 


public class MyClass : MyClass1<T> 


  是无效的。 

  
10. 泛型和可代替性 

  当我们使用泛型时,要小心可代替性的情况。如果B继承自A,那么在使用对象A的地方,可能都会用到对象B。假定我们有一篮子水果(a Basket of Fruits (Basket<Fruit>)),而且有继承自Fruit的Apple和Banana(皆为Fruit的种类)。一篮子苹果
--Basket of Apples (Basket<apple>)可以继承自Basket of Fruits (Basket<Fruit>)?答案是否定的,如果我们考虑一下可代替性的话。为什么?请考虑一个a Basket of Fruits可以工作的方法: 


public void Package(Basket<Fruit> aBasket) 

 aBasket.Add(
new Apple()); 
 aBasket.Add(
new Banana()); 
}
 


  如果发送一个Basket<Fruit>的实例给这个方法,这个方法将添加一个Apple对象和一个Banana对象。然而,发送一个Basket<Apple>的实例给这个方法时,会是什么情形呢?你看,这里充满技巧。这解释了为什么下列代码: 


Basket<Apple> anAppleBasket 
= new Basket<Apple>(); 
Package(anAppleBasket); 


  会产生错误: 


Error 
2 Argument ’1’: 
cannot convert from ’TestApp.Basket<testapp.apple>’ 
to ’TestApp.Basket<testapp.fruit>’ 


  编译器通过确保我们不会随意地传递一个集合的派生类(此时需要一个集合的基类),保护了我们的代码。这不是很好吗? 

  这在上面的例中在成功的,但也存在特殊情形:有时我们确实想传递一个集合的派生类,此时需要一个集合的基类。例如,考虑一下Animal(如Monkey),它有一个把Basket<Fruit>作参数的方法Eat,如下所示: 


public void Eat(Basket<Fruit> fruits) 

 
foreach (Fruit aFruit in fruits) 
 

  
//将吃水果的代码 
 }
 
}
 


  现在,你可以调用: 


Basket<Fruit> fruitsBasket 
= new Basket<Fruit>(); 
… 
//添加到Basket对象中的对象Fruit 
anAnimal.Eat(fruitsBasket); 


  如果你有一篮子(a Basket of)Banana
-一Basket<Banana>,情况会是如何呢?把一篮子(a Basket of)Banana-一Basket<Banana>发送给Eat方法有意义吗?在这种情形下,会成功吗?真是这样的话,编译器会给出错误信息: 


Basket<Banana> bananaBasket 
= new Basket<Banana>(); 
//… 
anAnimal.Eat(bananaBasket); 


  编译器在此保护了我们的代码。我们怎样才能要求编译器允许这种特殊情形呢?约束机制再一次帮助了我们: 


public void Eat<t>(Basket<t> fruits) where T : Fruit 

 
foreach (Fruit aFruit in fruits) 
 

  
//将吃水果的代码 
 }
 
}
 


  在建立方法Eat()的过程中,我要求编译器允许一篮子(a Basket of)任何类型T,这里T是Fruit类型或任何继承自Fruit的类。 


希望用户看完之后注册用户发表你的意见,将给予更多的学习资料
! 

转载与 http:
//lqs.13e4.cn/bbs/Announce/Announce.asp?BoardID=103&ID=34&q=1&r=24
re: SQL Server性能调优入门(图文版) wannianchuan 2007-03-30 15:40  
正是我需要的,先存起来,慢慢消化
re: 大型网站优化与故障诊断实战 (下) wannianchuan 2007-03-30 14:58  
不错,有收获
re: FFMPEG 的手册 ffmpeg工程组 2007-03-20 00:41  
不错,已将该文收录到ffmpeg工程组的wiki:http://www.ffmpeg.com.cn,有关ffmpeg的更多内容可参考ffmpeg wiki.
很不错
re: [转载]利用ffmpeg转换3gp文件 puhongxia 2007-03-08 11:51  
3GPP
re: ASP.NET跨应用程序进行登录的解决 唐朝程序员 2007-03-02 10:07  
re: C#游戏外挂代码(转载) 逸枫 2007-02-26 13:00  
学习制作中.
谢谢了.
哪有那么多时间还弄成word啊?呵呵,不过word不太会
整理成word可以下载的吧
re: 征集佳句-精妙SQL语句收集 庸人不自擾 2006-10-09 16:23  
收藏下,謝謝:)
dffadsafsf
afdsafdasfadsffdsfdsfdsafa.,,,gafafsdafsd,,,..asfdasfwqeqrqr
。。。不记得写出处了!!!

来自Shooper .NET
http://shooper.cnblogs.com/archive/2004/04/27/7813.aspx
re: Asp.Net性能优化. (转) 唐朝程序员 2006-09-27 11:36  
一、SqlDataRead和Dataset的选择
  Sqldataread优点:读取数据非常快。如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多。缺点:直到数据读完才可close掉于数据库的连接

  (SqlDataReader 读数据是快速向前的。SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法。它使用 SQL Server 的本机网络数据传输格式从数据库连接直接读取数据。DataReader需及时显式的close。可及时的释放对数据的连接。)

  Dataset是把数据读出,缓存在内存中。缺点:对内存的占用较高。如果对返回的数据需做大量的处理用Dataset比较好些可以减少对数据库的连接操作。优点:只需连接一次就可close于数据库的连接

  *一般情况下,读取大量数据,对返回数据不做大量处理用SqlDataReader.对返回数据大量处理用datset比较合适.对SqlDataReader和Dataset的选择取决于程序功能的实现。

  二、ExecuteNonQuery和ExecuteScalar

  对数据的更新不需要返回结果集,建议使用ExecuteNonQuery。由于不返回结果集可省掉网络数据传输。它仅仅返回受影响的行数。如果只需更新数据用ExecuteNonQuery性能的开销比较小。

  ExecuteScalar它只返回结果集中第一行的第一列。使用 ExecuteScalar 方法从数据库中检索单个值(例如id号)。与使用 ExecuteReader 方法, 返回的数据执行生成单个值所需的操作相比,此操作需要的代码较少。

  *只需更新数据用ExecuteNonQuery.单个值的查询使用ExecuteScalar数据绑定的选择

  三、数据的绑定DataBinder

  一般的绑定方法<%# DataBinder.Eval(Container.DataItem, "字段名") %>用DataBinder.eval 绑定不必关心数据来源(Dataread或dataset)。不必关心数据的类型eval会把这个数据对象转换为一个字符串。在底层绑定做了很多工作,使用了反射性能。正因为使用方便了,但却影响了数据性能。来看下<%# DataBinder.Eval(Container.DataItem, "字段名") %>。当于dataset绑定时,DataItem其实式一个DataRowView(如果绑定的是一个数据读取器(dataread)它就是一个IdataRecord。)因此直接转换成DataRowView的话,将会给性能带来很大提升。

  <%# ctype(Container.DataItem,DataRowView).Row("字段名") %>

  *对数据的绑定建议使用<%# ctype(Container.DataItem,DataRowView).Row("字段名") %>。数据量大的时候可提高几百倍的速度。使用时注意2方面:1.需在页面添加<%@ Import namespace="System.Data"%>.2.注意字段名的大小写(要特别注意)。如果和查询的不一致,在某些情况下会导致比<%# DataBinder.Eval(Container.DataItem, "字段名") %>还要慢。如果想进一步提高速度,可采用<%# ctype(Container.DataItem,DataRowView).Row(0) %>的方法。不过其可读性不高。

  以上的是vb.net的写法。在c#中:<@% ((DataRowView)Container.DataItem)["字段名"] %>

  对查看页面每个执行过程状态最简单的办法:其页面的trace属性为true就可查看细节。

  一、使用存储过程:

  1、性能方面:存储过程提供了许多标准sql语言中所没有的高级特性。其传递参数和执行逻辑表达式的功能,有助于应用程序设计者处理复杂任务。另外,存储过程存储在本地服务器上,减少了执行该过程所需的网络传输宽带和执行时间。(存储过程已经对sql语句进行了预编译,所以其执行速度比在程序里执行sql语句快很多)

  2、程序结构方面:从程序的可扩展性看,使用存储过程会对程序以后的修改带来方便。比如数据库的结构改变了,只需修改相对应的存储结构,和程序中的调用部分即可。这部分不属于本文探讨范围,属于程序结构设计方面。所以不在此展开。

  3、程序安全性:使用存储过程可避免SQL Injection攻击。

  二、查询语句的优化(针对sql server2000)

  很多人只为目的写出sql语句,而不考虑sql语句的执行效率。在这我只提供一优化表顺序的方法,(sql语句的优化和原则将会在我的sql server2000学习笔记中专题讨论)

  对sql语句执行效率可用sql server2000的查询分析器来查看语句的执行过程。

  优化表顺序:一般情况下,sqlserver 会对表的连接作出自动优化。例如:select name,no from A join B on A. id=B.id join C on C.id=A.id where name=’wang’

  尽管A表在From中先列出,然后才是B,最后才是C。但sql server可能会首先使用c表。它的选择原则是相对于该查询限制为单行或少数几行,就可以减少在其他表中查找的总数据量。绝大多数情况下,sql server 会作出最优的选择,但如果你发觉某个复杂的联结查询速度比预计的要慢,就可以使用SET FORCEPLAN语句强制sql server按照表出现顺序使用表。如上例加上:SET FORCEPLAN ON…….SET FORCEPLAN OFF 表的执行顺序将会按照你所写的顺序执行。在查询分析器中查看2种执行效率,从而选择表的连接顺序。

  *使用SET FORCEPLAN选择表联结顺序

  三、页面的优化(.aspx)

  主要针对几个页面属性

  1、EnableViewState(页面的视图状态)。如果无特殊要求设置为false。使用ViewState ,每个对象都必须先序列化到 ViewState 中,然后再通过回传进行反序列化,因此使用 ViewState是没有代价的。尽量减少使用对象,如果可能,尽量减少放入 ViewState 中的对象的数目。下面情况基本上可以禁用viewstate:

  (1)页面控件 (.ascx) [转自:51item.net]
  (2)页面不回传给自身。
  (3)无需对控件的事件处理。
  (4)控件没有动态的或数据绑定的属性值(或对于每个postpack都在代码中处理)

  单个页面或每个页面都禁用 ViewState,如下所示:单个页面:<%@ Page EnableViewState="False" %> 每个页面:在 web.config 中 <Pages EnableViewState="false" /> EnableSessionState保持默认值即可(如果页面用到sessionstate它才会占用资源)。EnableViewStateMac如果无安全上的特殊要求,保持默认值。

  2、Pagelayout.页面布局模型。建议使用Flowlayout(元素不带绝对定位属性添加).Gridlayout(绝对定位属性)由于采用绝对定位,将会比Flowlayout生产更多的代码,主要是控件的定位信息。

  3、项目发布的时候切记解除页面的Debug状态。

  4、Html语言的优化。我的建议是熟练掌握Html/JavaScript,少用vs.net2003自动生产的代码,它会自动生成一些无用的html代码。

  5、smart navigation设置为true能让用户明显的感觉性能提高。启用此属性后对客户端和服务端影响不大.它能智能涮新需要涮新需涮新的部分.

 四、控件的选择:



  Html控件和服务器控件的选择。服务器控件带来的方便和功能上的实现是html控件所不能比拟的。但是是以牺牲服务器端的资源来取得的。我个人建议:如果html控件达不到所要实现的功能,而且和一些脚本语言(如javascrpt/vbscript)结合也不能实现的话。才会选择服务器控件。选择服务器控件后,也尽量对其控件优化,如取消一些页面状态等(具体看控件的优化)

  服务器控件的选择:主要针对几个常用数据控件说明一下:

  DataGrid:自带最强大的数据显示控件,内置了对数据的修改、删除、添加、分页等很多实用功能。如果你只需对数据显示的话,尽量不要选择DataGrid(它把数据都存储在viewstate中).也不要使用自带的分页功能,microsoft在自动分页的底层做了很多工作,虽然使用方便了,但性能开销大了。

  DataList:比DataGrid功能少了很多。但自定义性强了很多。特有的多行数据显示,给我们带来了很多方便。DataGrid能实现的功能,它基本能实现。所以建议使用它。

  Repeater:功能最少,但自定义性非常强。如果只需对数据显示,建议使用。由于减少了很多功能,对服务器的性能带来消耗最小。因此,如果是对数据显示的话,我基本上都是选择Repeater然后DataList最后DataGrid

  *尽量选择html控件。能在客户端实现的功能就在客户端实现(熟练掌握javascript),减少服务器的压力。数据控件选择顺序:Repeater、DataList、DataGrid

  五、服务器控件的优化:

  1、Viewstate

  控件的viewstate与页面的viewstate基本是一致的。用来保存控件的一些状态。处理原则和处理页面的viewstate一样。有兴趣的可以用Datagrid绑定数据测试下viewstate保存的数据量有多大,它所保存的数据基本和Datagrid显示的数据量大小是等同的。

  2、Ispostpack

  默认false.需要产生事件的时候才需设置为true.

  控件的优化,主要看你对此控件的熟悉情况。对控件内部运作的原理越了解,就会对其作出合适的优化。

  性能优化是三两句话说不清的,我所写出的仅仅是冰山一角,性能的优化是靠平时经验的积累和对程序的运作原理的不断认知。

西楚霸王 评论于 2006-06-05 23:03
# re: Asp.Net性能优化. (转) 回复


http://www.qqgb.com/NetProgramme/ASP/ASPoptimize/NetProgramme_127686.html

二十八条改善 ASP 性能和外观的技巧
Len Cardinal,高级顾问,Microsoft Consulting Services George V. Reilly
Microsoft IIS Performance Lead

改编自Nancy Cluts 的文章 开发人员技术工程师
Microsoft Corporation
2000 年 4 月

摘要:本文介绍优化 ASP 应用程序和 VBScript 的技巧。

目录
技巧 1:将经常使用的数据缓存在 Web 服务器上
技巧 2:将经常使用的数据缓存在 Application 或 Session 对象中
技巧 3:将数据和 HTML 缓存在 Web 服务器的磁盘上
技巧 4:避免将非敏捷的组件缓存在 Application 或 Session 对象中
技巧 5:不要将数据库连接缓存在 Application 或 Session 对象中
技巧 6:合理地使用 Session 对象
技巧 7:将代码封装在 COM 对象中
技巧 8:迟一点获得资源,早一点释放资源
技巧 9:进程外执行过程以性能换取可靠性
技巧 10:使用显式选项
技巧 11:在子例程和函数中使用局部变量
技巧 12:将经常使用的数据复制到脚本变量中
技巧 13:避免重新确定数组的维数
技巧 14:使用响应缓冲
技巧 15:批处理内嵌脚本和 Response.Write 语句
技巧 16:如果页面需要很长时间才能完成,那么执行前使用 Response.IsClientConnected
技巧 17:使用 <OBJECT> 标记例示对象
技巧 18:对于 ADO 和其它组件使用 TypeLib 绑定
技巧 19:利用浏览器的验证功能
技巧 20:避免在循环语句中使用字符串串联
技巧 21:启用浏览器和代理缓存
技巧 22:尽可能使用 Server.Transfer 代替 Response.Redirect
技巧 23:在目录 URL 中使用后斜杠
技巧 24:避免使用服务器变量
技巧 25:升级到最新和最出色的
技巧 26:优化 Web 服务器
技巧 27:进行性能测试
技巧 28:阅读资源链接
共2页: 1 2 下一页 
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

导航

统计

公告

昵称:唐朝程序员
园龄:5年7个月
粉丝:8
关注:1

搜索

 
 

常用链接

随笔分类

随笔档案

文章分类

C#

休闲

最新评论

阅读排行榜

评论排行榜

推荐排行榜