??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久亚洲av无码专区喷水,欧洲精品久久久av无码电影,国产精品免费福利久久http://www.shnenglu.com/andxie99/category/4402.html上学Ӟ因我q龄最,个头也最,上课Ӟ像大猩猩堆里的猴一般。如今,q猴偶尔也把最q的一些情况写在这里?/description>zh-cnTue, 20 May 2008 05:33:49 GMTTue, 20 May 2008 05:33:49 GMT60.NET性能优化斚w的ȝQ?Q?JavaScripthttp://www.shnenglu.com/andxie99/archive/2007/04/07/21449.html思勤无邪思勤无邪Sat, 07 Apr 2007 05:17:00 GMThttp://www.shnenglu.com/andxie99/archive/2007/04/07/21449.htmlhttp://www.shnenglu.com/andxie99/comments/21449.htmlhttp://www.shnenglu.com/andxie99/archive/2007/04/07/21449.html#Feedback0http://www.shnenglu.com/andxie99/comments/commentRss/21449.htmlhttp://www.shnenglu.com/andxie99/services/trackbacks/21449.html
    4.1 JScript性能优化的基本原?/strong>
    1. 可能少地减执行次数。毕竟对解释语言来说Q每一个执行步骤,都需要和解释引擎做一ơ交互?br>    2. 可能用语a内置的功能,比如串链接?br>    3. 可能用系l提供的API来进行优化。因些API是编译好的二q制代码Q执行效率很高?br>    4. 书写最正确的代码。容错功能是要付出性能代h的?br>
    4.2 JScript语言本n的优?/strong>
    4.2.1 变量
    1. 量使用局部变量?br>    因ؓ全局变量其实是全局对象的成员,而局部变量在栈上定义Q优先查找,性能相对于全局变量要高?/p>

    2. 量在一个语句中做定义变量和赋倹{?/p>

    3. 省略不必要的变量定义?br>    如果变量的定义可以被一个常量替代,q接用常量?/p>

    4. 使用Object语法对对象赋倹{?br>    Object的赋D法在操作复杂对象时效率更高?br>    例如Q可以将下面的代码:

car = new Object();
car.make 
= "Honda";
car.model 
= "Civic";
car.transmission 
= "manual";
car.miles 
= 100000;
car.condition 
= "needs work";

    替换成:

car = {
    make: 
"Honda",
    model: 
"Civic",
    transmission: 
"manual",
    miles: 
100000,
    condition: 
"needs work"
}


    4.2.2 对象~存
   
1. ~存对象查找的中间结果?br>    因ؓJavaScript的解释性,所以a.b.c.d.eQ需要进行至?ơ查询操作,先检查a再检查a中的bQ再查b中的cQ如此往下。所以如果这L表达式重复出玎ͼ只要可能Q应该尽量少出现q样的表辑ּQ可以利用局部变量,把它攑օ一个时的地方q行查询?/p>

    2. ~存创徏旉较长的对象?br>    自定义高U对象和Date、RegExp对象在构造时都会消耗大量时间。如果可以复用,应采用缓存的方式?/p>

    4.2.3 字符串操?/strong>
    1. 使用"+=" q加字符Ԍ使用"+"来连接字W串?br>    如果是追加字W串Q最好用s+=anotherStr操作Q而不是要使用s=s+anotherStr?br>    如果要连接多个字W串Q应该?+"Q如Q?br>    s+=a;
    s+=b;
    s+=c;
    应该写成
    s+=a + b + cQ?/p>

    2. q接大量的字W串Q应使用Array的joinҎ?br>    如果是收集字W串Q最好用JavaScript数组~存Q最后用joinҎq接hQ如下:

var buf = new Array();
for (var i = 0; i < 100; i++)
{
    buf.push(i.toString());
}


var all = buf.join("");


    4.2.4 cd转换
   
1. 使用Math.floor()或者Math.round()QҎ转换成整型?br>    点数{换成整型Q这个更Ҏ出错Q很多h喜欢使用parseInt()Q其实parseInt()是用于将字符串{换成数字Q而不是QҎ和整型之间的转换Q我们应该用Math.floor()或者Math.round()?br>对象查找中的问题不一PMath是内部对象,所以Math.floor()其实q没有多查询方法和调用的时_速度是最快的?/p>

    2. 自定义的对象Q推荐定义和使用toString()Ҏ来进行类型{换?br>    对于自定义的对象Q如果定义了toString()Ҏ来进行类型{换的话,推荐昑ּ调用toString()。因为内部的操作在尝试所有可能性之后,会尝试对象的toString()Ҏ试能否转化为StringQ所以直接调用这个方法效率会更高?/p>

    4.2.5 循环的优?br>    1. 可能少使用for(in)循环?br>    在JavaScript中,我们可以使用for(;;),while(),for(in)三种循环Q事实上Q这三种循环中for(in)的效率极差,因ؓ他需要查询散列键Q只要可以就应该量用?/p>

    2. 预先计算collection的length?br>    如:?br>     for (var i = 0; i < collection.length; i++)
    替换成:
     for (var i = 0, len = collection.length; i < len; i++)
    效果会更好,其是在大@环中?/p>

    3. 量减少循环内的操作?br>    循环内的每个操作Q都会被攑֤为@环次数的倍数。所以,大@环内微小的改q,在性能的整体提升上都是可观的?/p>

    4. 使用循环替代递归?br>相比循环Q递归的效率更差一些。递归的优Ҏ在Ş式上更自然一些。所以,在不影响代码的维护性的前提下,用@环替代递归?/p>

    4.2.6 其它斚w
    1. 量使用语言内置的语法?br>    "var arr = […];"?var arr = new Array(…);"是等效的Q但是前者的效能优于后者。同P"var foo = {};"的方式也?var foo = new Object();"快;"var reg = /../;"要比"var reg=new RegExp()"快?/p>

    2. 量不要使用eval?br>使用evalQ相当于在运行时再次调用解释引擎Q对传入的内容解释运行,需要消耗大量时间?/p>

    3. 使用prototype代替closure?br>    使用closure在性能和内存消耗上都是不利的。如果closure使用量过大,q就会成Z个问题。所以,量:
     this.methodFoo = function()
替换成:
     MyClass.protoype.methodFoo = function()
和closure存在于对象实例之中不同,prototype存在于类中,被该cȝ所有的对象实例׃n?/p>

    4. 避免使用with语句?br>    With语句临时扩展对象查找的范_节省了文字的录入旉Q但付出了更多的执行旉。因为每个给出的名称都要在全局范围查找。所以,可以下面的代码Q?/p>

with (document.formname)
{
    field1.value 
= "one";
    field2.value 
= "two";
}

变更为:

var form = document.formname;
form.field1.value 
= "one";
form.field2.value 
= "two";


    4.3 DOM相关
    4.3.1 创徏DOM节点
    相比较通过document.write来给面生成内容Q找一个容器元素(比如指定一个div或者spanQƈ讄他们的innerHTML效率更高?br>    而设|innerHTML的方式比通过createElementҎ创徏节点的效率更高。事实上Q设|元素的innerHTML是创Ҏ率最高的一U方式?br>    如果必须使用createElementҎQ而如果文档中存在现成的样板节点,应该是用cloneNode()Ҏ。因Z用createElement()Ҏ之后Q你需要设|多ơ元素的属性,使用cloneNode()则可以减属性的讄ơ数。同P如果需要创建很多元素,应该先准备一个样板节炏V?/p>

    4.3.2 ȝ操作大型的DOM?br>    在添加一个复杂的DOM树时Q可以先构造,构造结束后再将其添加到DOM数的适当节点。这能够节省界面h的时间?/p>

    同样Q在准备~辑一个复杂的树时Q可以先树从DOM树上删除Q等~辑l束后再d回来?br> 
    4.3.3 对象查询
   
使用[""]查询要比.item()更快。调?item()增加了一ơ查询和函数的调用?br>
    4.3.4 定时?br>    如果针对的是不断q行的代码,不应该用setTimeoutQ而应该用setInterval。setTimeout每次要重新设|一个定时器?br>
    4.4 其他
    1. 量减小文g寸?br>    JScript文g中无关的I、空根{注释去掉,有助于减JS文g的尺寸,提高下蝲的时间。(可以通过工具来支持代码发布)
    2. 量不要在同一个Page内同时引用JScript和VBScript引擎
    3. Page内的JScriptUd到单独的JS文g中?br>    4. Page内的JScript攄在Page的最下面Q有助于提高面的响应速度?br>    5. 利用cacheQ减JScript文g的下载次?br>    6. 在HTML内书写JScript文g的URLӞ注意l一大小写。这样可以利用前面URL~存的文件?br>    7. 推荐使用JScript Lint查Javascript代码。毕竟,对JScript引擎来说Q最Ҏ理解的JScript代码Q执行的效率也就最高?br>



思勤无邪 2007-04-07 13:17 发表评论
]]>
.NET性能优化斚w的ȝQ?Q?Asp.Net http://www.shnenglu.com/andxie99/archive/2007/04/07/21437.html思勤无邪思勤无邪Sat, 07 Apr 2007 01:32:00 GMThttp://www.shnenglu.com/andxie99/archive/2007/04/07/21437.htmlhttp://www.shnenglu.com/andxie99/comments/21437.htmlhttp://www.shnenglu.com/andxie99/archive/2007/04/07/21437.html#Feedback0http://www.shnenglu.com/andxie99/comments/commentRss/21437.htmlhttp://www.shnenglu.com/andxie99/services/trackbacks/21437.html    3.1 减少往q行E(Reduce Round TripsQ?/strong>
    使用下面的方法可以减Web服务器和Browser之间的往q行E:
    1. 为Browser启用~存
    如果呈现的内Ҏ静态的或变化周期较长,应启用Browser~存Q避免发出冗余的httph?/p>

    2. ~冲面输出
    如果可能Q则量~冲面输出Q处理结束后再一ơ传送到客户端,q可以避免频J传递小块内Ҏ造成的多ơ网l交互。由于这U方式在面处理l束之前客户端无法看到页面内容,因此如果一个页面的寸较大的话Q可考虑使用Response.FlushҎ。该Ҏ强制输出q今为止在缓冲区中的内容Q你应当采用合理的算法控制调用Response.FlushҎ的次数?/p>

    3. 使用Server.Transfer重定向请?br>    使用Server.TransferҎ重定向请求优于Response.RedirectҎ。原因是Response.Redirect会向Broswer回送一个响应头Q在响应头中指出重定向的URLQ之后Brower使用新的URL重新发出h。而Server.TransferҎ直接是一个简单的服务端调用,完全没有q些开销Q?br>    需要注意Server.Transfer有局限性:W一Q它会蟩q安全检查;W二Q只适用于在同一Web应用内的面间蟩转?br>
    3.2 避免d和长旉的作?br>    如果需要运行阻塞或长时间运行的操作Q可以考虑使用异步调用的机Ӟ以便Web服务器能够l处理其它的h?br>    1. 使用异步方式调用Web服务和远E对?br>    只要有可能就要避免在h的处理过E中对Web服务和远E对象的同步调用Q因为它占用的是的ASP.NET U程池中的工作线E,q将直接影响Web服务器响应其它请求的能力?/p>

    2. 考虑l不需要返回值的WebҎ或远E对象的ҎdOneWay属?br>    q种模式能让Web Server调用之后q卌回。可Ҏ实际情况军_是否使用q种Ҏ?/p>

    3. 使用工作队列
    作业提交到服务器上的工作队列中。客L通过发送请求来轮询作业的执行结果?br>
    3.3 使用~存
    ~存能在很大E度上决定ASP.NET应用的最l性能。Asp.net支持面输出~存和页面部分缓存,q提供Cache APIQ供应用E序~存自己的数据。是否用缓存可考虑下面的要点:
    1. 识别创徏与访问代仯大的数据
    2. 评估需要缓存数据的易变?br>    3. 评估数据的用频?br>    4. 要~存数据中易变数据和不变数据分离Q只~存不变数据
    5. 选择合适的~存机制Q除Asp.net Cache外,Application state和Session state也可以作为缓存用)

    3.4 多线E?br>    1. 避免在请求处理过E中创徏U程
    在执行请求的q程中创建线E是一U代仯大的操作Q会严重影响Web Server的性能。如果后l的操作必须用线E完成,通过thread pool来创?理U程?/p>

    2. 不要依赖U程数据槽或U程静态变?br>    ׃执行h的线E是ASP.NET thread pool中的工作U程Q同一个Client的两ơ请求不一定由相同的线E来处理?

    3. 避免d处理h的线E?br>参?避免d和长旉的作?节?/p>

    4. 避免异步调用
    q和1的情늱伹{异步调用会D创徏新的U程Q增加服务器的负担。所以,如果没有q发的作业要执行Q就不要执行异步调用?br>
    3.5 pȝ资源
    1. 考虑实现资源池以提升性能
    2. 明确地调用Dispose或Close释放pȝ资源
    3. 不要~存或长旉占用资源池中的资?br>    4. 可能晚的申P可能早的释?br>
    3.6 面处理
    1. 量减小Page的尺?br>    包括~短控g的名U、CSS的class的名U、去掉无谓空行和I格、禁用不需要的ViewState
    2. 启用面输出的缓冲区QBufferQ?br>    如果Buffer的机制被关闭Q可以用下面的方法打开?br>     使用E序打开面输出~存Q?br>      Response.BufferOutput = true;

     使用@Page开x开面输出~冲机制Q?br>      <%@ Page Buffer = "true" %>

     使用Web.config或Machine.config配置文g?lt;pages>节点Q?br>      <pages buffer="true" …>
    3. 利用Page.IsPostBack优化面输出
    4. 通过分离面的不同的内容Q来提高~存效率和减呈现的旉 
    5. 优化复杂和代仯大的循环 
    6. 合理利用客户端的计算资源Q将一些操作{Ud客户端进?br>
    3.7 ViewState
    ViewState是Asp.net为服务端控g在页面回传之间跟t状态信息而设计的一U机制?br>    1. 关闭ViewState
    如果不需要跟t页面状态,例如面不会 回传QPostBackQ、不需要处理服务端控g事g或者每ơ页面刷新时都会重新计算控g内容Q那么就不需要用ViewState来记录页面状态了。可以对特定的WebControl讄EnableViewState属性,也可以在面一U设|:
<%@ Page EnableViewState="false" %>

    2. 在恰当的旉点初始化控g属?br>    ASP.NET的控件在执行构造函数、初始化的期间设|的属性不会被跟踪变化Q而在初始化阶D之后对属性的修改都会被跟t,q最l记录到IE面的__VIEWSTATE之中。所以,选择合理的初始化控g属性的执行点,能有效的减小面寸?/p>

    3. 谨慎选择攑ֈViewState中的内容
    攑ֈViewState中的内容会被序列?反序列化QAsp.net为String、Integer、Boolean{基本类型的序列化做了优化,如果Array、ArrayList、HashTable存储的是基本cd效率也较高,但其它类型则需要提供类型{换器QType ConverterQ,否则用代h늚二进制序列化E序?br>



思勤无邪 2007-04-07 09:32 发表评论
]]>
.NET性能优化斚w的ȝQ?Q?Ado.Nethttp://www.shnenglu.com/andxie99/archive/2007/04/02/21119.html思勤无邪思勤无邪Mon, 02 Apr 2007 13:59:00 GMThttp://www.shnenglu.com/andxie99/archive/2007/04/02/21119.htmlhttp://www.shnenglu.com/andxie99/comments/21119.htmlhttp://www.shnenglu.com/andxie99/archive/2007/04/02/21119.html#Feedback0http://www.shnenglu.com/andxie99/comments/commentRss/21119.htmlhttp://www.shnenglu.com/andxie99/services/trackbacks/21119.html2. Ado.Net

    2.1 应用Ado.net的一些思考原?/strong>
    1. Ҏ数据使用的方式来设计数据讉K?br>    2. ~存数据Q避免不必要的操?br>    3. 使用服务帐户q行q接
    4. 必要时申P早释放
    5. 关闭可关闭的资源
    6. 减少往q?br>    7. 仅返回需要的数据
    8. 选择适当的事务类?br>    9. 使用存储q程

    2.2 Connection
    数据库连接是一U共享资源,q且打开和关闭的开销较大。Ado.net默认启用了连接池机制Q关闭连接不会真的关闭物理连接,而只是把q接攑֛到连接池中。因为池中共享的q接资源始终是有限的Q如果在使用q接后不快关闭q接Q那么就有可能导致申误接的U程被阻塞住Q媄响整个系l的性能表现?br>    2.2.1 在方法中打开和关闭连?/strong>
    q个原则有几层含义:
    1. 主要目的是ؓ了做到必要时甌和尽早释?br>    2. 不要在类的构造函C打开q接、在析构函数中释放连接。因依赖于垃圾回收Q而垃圑֛收只受内存媄响,回收时机不定
    3. 不要在方法之间传递连接,q往往Dq接保持打开的时间过?/p>

    q里一下在Ҏ之间传递连接的危害Q曾l在压力试中遇到过一个测试案例,当增大用h的时候,q个案例要比别的案例早很久就用掉q接池中的所有连接。经分析Q就是因为AҎ把一个打开的连接传递到了BҎQ而BҎ又调用了一个自行打开和关闭连接的CҎ。在AҎ的整个运行期_它至需要占用两条连接才能够成功工作Qƈ且其中的一条连接占用时间还特别长,所以造成q接池资源紧张,影响了整个系l的可׾~性!

    2.2.2 昑ּ关闭q接
    Connection对象本n在垃圑֛收时可以被关闭,而依赖垃圑֛收是很不好的{略。推荐用using语句昑ּ关闭q接Q如下例Q?nbsp;

using (SqlConnection conn = new SqlConnection(connString))
{
    conn.Open();
    
}
    // Dispose is automatically called on the conn variable here


    2.2.3 保q接池启?br>    Ado.net是ؓ每个不同的连接串建立q接池,因此应该保q接串不会出C具体用户相关的信息。另外,要注意连接串是大写敏感的?br>    2.2.4 不要~存q接
   
例如Q把q接~存到Session或Application中。在启用q接池的情况下,q种做法没有M意义?br>    2.3 Command
    2.3.1 使用ExecuteScalar和ExecuteNonQuery
   
如果惌回像Count(*)、Sum(Price)或Avg(Quantity)那样的单|可以使用ExecuteScalarҎ。ExecuteScalarq回W一行第一列的|结果集作ؓ标量D回。因为单独一步就能完成,所以ExecuteScalar不仅化了代码Q还提高了性能?br>    使用不返回行的SQL语句Ӟ例如修改数据QINSERT、UPDATE或DELETEQ或仅返回输出参数或q回|请用ExecuteNonQuery。这避免了用于创建空DataReader的Q何不必要处理?br>    2.3.2 使用Prepare
   
当需要重复执行同一SQL语句多次Q可考虑使用PrepareҎ提升效率。需要注意的是,如果只是执行一ơ或两次Q则完全没有必要。例如:

cmd.CommandText = "insert into Table1 ( Col1, Col2 ) values ( @val1, @val2 )";

cmd.Parameters.Add( 
"@val1", SqlDbType.Int, 4"Col1" );
cms.Parameters.Add( 
"@val2", SqlDbType.NChar, 50"Col2");

cmd.Parameters[
0].Value = 1;
cmd.Parameters[
1].Value = "XXX";
cmd.Prepare();
cmd.ExecuteNonQuery();

cmd.Parameters[
0].Value = 2;
cmd.Parameters[
1].Value = "YYY";
cmd.ExecuteNonQuery();

cmd.Parameters[
0].Value = 3;
cmd.Parameters[
1].Value = "ZZZ";
cmd.ExecuteNonQuery();


    2.3.3 使用l定变量 ?br>    SQL语句需要先被编译成执行计划Q然后再执行。如果用绑定变量的方式Q那么这个执行计划就可以被后l执行的SQL语句所复用。而如果直接把参数合ƈCSQL语句中,׃参数值千变万化,执行计划难以被复用了。例如上面Prepare一节给出的CZQ如果把参数值直接写到insert语句中,那么上面的四ơ调用将需要编译四ơ执行计划?br>    为避免这U情况造成性能损失Q要求一律用绑定变量方式?br>    2.4 DataReader
   
DataReader最适合于访问只ȝ单向数据集。与DataSet不同Q数据集q不全部在内存中Q而是随不断发出的readhQ一旦发现数据缓冲区中的数据均被dQ则从数据源传输一个数据缓冲区大小的数据块q来。另外,DataReader保持q接QDataSet则与q接断开?br>    2.4.1 昑ּ关闭DataReader
   
与连接类|也需要显式关闭DataReader。另外,如果与DataReader兌的Connection仅ؓDataReader服务的话Q可考虑使用Command对象的ExecuteReader(CommandBehavior.CloseConnection)方式。这可以保证当DataReader关闭Ӟ同时自动关闭Connection?br>    2.4.2 用烦引号讉K代替名称索引可问属?br>    从Row中访问某列属性,使用索引L方式比用名U方式有l微提高。如果会被频J调用,例如在@环中Q那么可考虑此类优化。示例如下:

cmd.CommandText = "select Col1, Col2 from Table1" ;
SqlDataReader dr 
= cmd.ExecuteReader();

int col1 = dr.GetOrdinal("Col1");
int col2 = dr.GetOrdinal("Col2");

while (dr.Read())
{
    Console.WriteLine( dr[col1] 
+ "_" + dr[col2]);
}


    2.4.3 使用cd化方法访问属?br>    从Row中访问某列属性,用GetString、GetInt32q种昑ּ指明cd的方法,其效率较通用的GetValueҎ有细微提高,因ؓ不需要做cd转换?br>    2.4.4 使用多数据集
    部分场景可以考虑一ơ返回多数据集来降低|络交互ơ数Q提升效率。示例如下:

cmd.CommandText = "StoredProcedureName";    // The stored procedure returns multiple result sets.
SqlDataReader dr = cmd.ExecuteReader();

while (dr.read())
// read first result set

dr.NextResult();

while (dr.read())
// 


    2.5 DataSet
    2.5.1 利用索引加快查找行的效率
    如果需要反复查找行Q徏议增加烦引。有两种方式Q?br>    1. 讄DataTable的PrimaryKey
    适用于按PrimaryKey查找行的情况。注意此时应调用DataTable.Rows.FindҎQ一般惯用的SelectҎ不能利用索引?br>    2. 使用DataView
    适用于按Non-PrimaryKey查找行的情况。可为DataTable创徏一个DataViewQƈ通过SortOrder参数指示建立索引。此后用Find或FindRows查找行?br>



思勤无邪 2007-04-02 21:59 发表评论
]]>
.NET性能优化斚w的ȝhttp://www.shnenglu.com/andxie99/archive/2007/03/24/20538.html思勤无邪思勤无邪Sat, 24 Mar 2007 09:06:00 GMThttp://www.shnenglu.com/andxie99/archive/2007/03/24/20538.htmlhttp://www.shnenglu.com/andxie99/comments/20538.htmlhttp://www.shnenglu.com/andxie99/archive/2007/03/24/20538.html#Feedback0http://www.shnenglu.com/andxie99/comments/commentRss/20538.htmlhttp://www.shnenglu.com/andxie99/services/trackbacks/20538.html阅读全文

思勤无邪 2007-03-24 17:06 发表评论
]]>
C#中一U执行命令行或DOS内部命o的方?/title><link>http://www.shnenglu.com/andxie99/archive/2006/12/09/16200.html</link><dc:creator>思勤无邪</dc:creator><author>思勤无邪</author><pubDate>Sat, 09 Dec 2006 14:52:00 GMT</pubDate><guid>http://www.shnenglu.com/andxie99/archive/2006/12/09/16200.html</guid><wfw:comment>http://www.shnenglu.com/andxie99/comments/16200.html</wfw:comment><comments>http://www.shnenglu.com/andxie99/archive/2006/12/09/16200.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/andxie99/comments/commentRss/16200.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/andxie99/services/trackbacks/16200.html</trackback:ping><description><![CDATA[<font face="Courier New"><br>    用Ping命o作示例,说明C#下执行命令行或DOS内部命o的一U方法,q获取相应的l果。执行时可以让这些程序的执行q程不显C出来,调用外部E序可以分析执行结果?br><br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> System;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 要用使用ProcesscL创徏独立的进E?导入</span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> System.Diagnostics;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000"> Cmd<br><img id=Codehighlighter1_82_1799_Open_Image onclick="this.style.display='none'; Codehighlighter1_82_1799_Open_Text.style.display='none'; Codehighlighter1_82_1799_Closed_Image.style.display='inline'; Codehighlighter1_82_1799_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_82_1799_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_82_1799_Closed_Text.style.display='none'; Codehighlighter1_82_1799_Open_Image.style.display='inline'; Codehighlighter1_82_1799_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_82_1799_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_82_1799_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> CmdConsole<br><img id=Codehighlighter1_110_1797_Open_Image onclick="this.style.display='none'; Codehighlighter1_110_1797_Open_Text.style.display='none'; Codehighlighter1_110_1797_Closed_Image.style.display='inline'; Codehighlighter1_110_1797_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_110_1797_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_110_1797_Closed_Text.style.display='none'; Codehighlighter1_110_1797_Open_Image.style.display='inline'; Codehighlighter1_110_1797_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_110_1797_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_110_1797_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        [STAThread]<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> Main(</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">[] args)<br><img id=Codehighlighter1_181_403_Open_Image onclick="this.style.display='none'; Codehighlighter1_181_403_Open_Text.style.display='none'; Codehighlighter1_181_403_Closed_Image.style.display='inline'; Codehighlighter1_181_403_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_181_403_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_181_403_Closed_Text.style.display='none'; Codehighlighter1_181_403_Open_Image.style.display='inline'; Codehighlighter1_181_403_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_181_403_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_181_403_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            Console.Write(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Please Input IP Address: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> ip </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> Console.ReadLine();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> strRst </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> CmdPing(ip);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            Console.WriteLine(strRst);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            Console.ReadLine();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> CmdPing(</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> strIp)<br><img id=Codehighlighter1_474_1791_Open_Image onclick="this.style.display='none'; Codehighlighter1_474_1791_Open_Text.style.display='none'; Codehighlighter1_474_1791_Closed_Image.style.display='inline'; Codehighlighter1_474_1791_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_474_1791_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_474_1791_Closed_Text.style.display='none'; Codehighlighter1_474_1791_Open_Image.style.display='inline'; Codehighlighter1_474_1791_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_474_1791_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_474_1791_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 实例一个Processc?启动一个独立进E?/span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            Process p </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Process();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 讑֮E序?/span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            p.StartInfo.FileName </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">cmd.exe</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 关闭Shell的?/span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            p.StartInfo.UseShellExecute </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 重定向标准输?/span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            p.StartInfo.RedirectStandardInput </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 重定向标准输?/span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            p.StartInfo.RedirectStandardOutput </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">重定向错误输?/span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            p.StartInfo.RedirectStandardError </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 讄不显C窗?/span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            p.StartInfo.CreateNoWindow </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 启动q程</span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> pingrst;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            p.Start();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            p.StandardInput.WriteLine(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ping -n 1 </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> strIp);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            p.StandardInput.WriteLine(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">exit</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 从输出流获取命o执行l果</span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> strRst </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> p.StandardOutput.ReadToEnd();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (strRst.IndexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">( 0% loss )</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>                pingrst </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">q接</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (strRst.IndexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Destination host unreachable.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>                pingrst </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">无法到达目的L</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (strRst.IndexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Request timed out.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>                pingrst </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">时</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (strRst.IndexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Unknown host</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>                pingrst </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">无法解析L</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>                pingrst </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> strRst;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> if end</span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            p.Close();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> pingrst;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div> </font> <img src ="http://www.shnenglu.com/andxie99/aggbug/16200.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/andxie99/" target="_blank">思勤无邪</a> 2006-12-09 22:52 <a href="http://www.shnenglu.com/andxie99/archive/2006/12/09/16200.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在不同页面之间传递参?/title><link>http://www.shnenglu.com/andxie99/archive/2006/10/27/14271.html</link><dc:creator>思勤无邪</dc:creator><author>思勤无邪</author><pubDate>Fri, 27 Oct 2006 02:12:00 GMT</pubDate><guid>http://www.shnenglu.com/andxie99/archive/2006/10/27/14271.html</guid><wfw:comment>http://www.shnenglu.com/andxie99/comments/14271.html</wfw:comment><comments>http://www.shnenglu.com/andxie99/archive/2006/10/27/14271.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/andxie99/comments/commentRss/14271.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/andxie99/services/trackbacks/14271.html</trackback:ping><description><![CDATA[<br>        q来论坛中关于在不同面之间传递参数的问题很多Q在此做一个简单的说明Q希望给l朋友们一些帮助,也希望朋友们能开展更多这斚w的讨论,Ƣ迎高手们提己更好的Ҏ?nbsp; <br><br>        关于不同面之间传递参敎ͼ一般常规用法是Q?nbsp; <br>        1、通过URL后带的参?nbsp; <br>q种Ҏ受限制很多,一是将参数暴露出来Q容易带来一些安全方面的隐患Q二是所带参数如果数量较多,控制h也很ȝQ?nbsp; <br><br>        2、通过常规表单中的POST提交  <br>q种Ҏ最常用Q但在ASP.NET面中的FROM控g无法象一般FORM那样参C到另一面Q需要通过特定的方式,否则和第一U方式无异?nbsp; <br><br>        3、Session方式  <br>传统方式之一Q对于特定的环境有利Q释放也比较Ҏ  <br><br>        4、通过接口或类的方式实现。我们主要讨Z下这个方法?nbsp; <br>ZWEB方式Q用变量传递必要使用U有变量Q因为很单,如果你用公有或静态变量,那会出现极大的؜乱,朋友们可以考虑一下ؓ什么?  <br>如果用类的属性,一个问题是对象的生存时间和范围限制我们不能以私有的方式来进行传递?nbsp; <br><br>        下面是结合一些SDK中的一些方法写的一个例子,供参考:  <br><br>说明Qؓ了进行更大数量和cd的参数的传递,也是chequan朋友的问题,考虑使用l构来实现。结构有其好处,合理使用Q应该不会造成太大的资源占用,特别是在q种传递上。有x的朋友也可以一赯Z下结构的使用?nbsp; <br>例子Q?nbsp; <br>做一个类文gQؓTrancfer.csQ内容如下:  <br>using System;  <br><br>namespace WEBLOG.Class  <br>{  <br>   /// <summary>  <br>   /// 定义一个结构,需要传递的内容可以p己来定义Q可以定义多个结构,以适合自己的需?nbsp; <br>   /// </summary>  <br>   public struct NormalUserRegInfo  <br>   {  <br>      public string UserName;  <br>      public string UserPassWord;  <br>      public string Quesion;  <br>      public string Answer;  <br>      public string UserEmail;  <br>      public string UserClass;  <br>   }  <br><br>   /// <summary>  <br>   /// 此接口定义了一个返回所需传递对象的属?nbsp; <br>   /// 发送对象的面必须实现此接?nbsp; <br>   /// </summary>  <br>   public interface ITransferface  <br>   {  <br>      TrancferClass TranceferObject{get;set;}  <br>   }  <br><br>   /// <summary>  <br>   /// Trancfer 的摘要说明?nbsp; <br>   /// </summary>  <br>   public class TrancferClass  <br>   {  <br>      public TrancferClass()  <br>      {  <br>         //  <br>         // TOD 在此处添加构造函数逻辑  <br>         //  <br>      }  <br><br>      private NormalUserRegInfo _strMessage;  <br><br>      public NormalUserRegInfo TranceferMessage  <br>      {  <br>         get  <br>         {  <br>            return this._strMessage;  <br>         }  <br>         set  <br>         {  <br>            this._strMessage = value;  <br>         }  <br>      }  <br><br>   }  <br>}  <br><br>有了q个c,可以在面中进行操作了Q?nbsp; <br>假设我们有一个页面,名ؓSet.aspxQ通过一个Button一些参数发到Get.aspx面中,  <br>q两个页面的相关代码如下Q?nbsp; <br>====================  <br>Set.aspx.cs  <br>====================  <br>using System;  <br>using System.Collections;  <br>using System.ComponentModel;  <br>using System.Data;  <br>using System.Drawing;  <br>using System.Web;  <br>using System.Web.SessionState;  <br>using System.Web.UI;  <br>using System.Web.UI.WebControls;  <br>using System.Web.UI.HtmlControls;  <br>using WEBLOG.Class;  <br><br>namespace WEBLOG  <br>{  <br>   /// <summary>  <br>   /// Set 的摘要说明?nbsp; <br>   /// </summary>  <br>   public class Set : System.Web.UI.Page,ITransferface  <br>   {  <br>      protected System.Web.UI.WebControls.Button Button1;  <br>      private TrancferClass _temptrancefer;  <br>      private void Page_Load(object sender, System.EventArgs e)  <br>      {  <br>         // 在此处放|用户代码以初始化页?nbsp; <br>         _temptrancefer = new TrancferClass();  <br>      }  <br><br>      #region Web H体设计器生成的代码  <br>      override protected void OnInit(EventArgs e)  <br>      {  <br>         //  <br>         // CODEGEN: 该调用是 ASP.NET Web H体设计器所必需的?nbsp; <br>         //  <br>         InitializeComponent();  <br>         base.OnInit(e);  <br>      }  <br>        <br>      /// <summary>  <br>      /// 设计器支持所需的方?- 不要使用代码~辑器修?nbsp; <br>      /// 此方法的内容?nbsp; <br>      /// </summary>  <br>      private void InitializeComponent()  <br>      {      <br>         this.Button1.Click += new System.EventHandler(this.Button1_Click);  <br>         this.Load += new System.EventHandler(this.Page_Load);  <br><br>      }  <br>      #endregion  <br><br>      //实现ITransferface接口  <br>      public TrancferClass TranceferObject   <br>      {  <br>         get  <br>         {  <br>            return this._temptrancefer;  <br>         }  <br>         set  <br>         {  <br>            this._temptrancefer = value;  <br>         }  <br>      }  <br><br><br>      private void Button1_Click(object sender, System.EventArgs e)  <br>      {  <br>         //定义一个结构,传递这个结?nbsp; <br>         NormalUserRegInfo temptest = new NormalUserRegInfo();  <br>         temptest.Answer="AAAAAAAAAAAAAAAA";  <br>         temptest.Quesion="BBBBBBBBBBBBB";  <br>         temptest.UserName="CCCCCCCCCCCCCCCCC";  <br>         temptest.UserPassWord="DDDDDDDDDDDDDDDDDDDDDDDDD";  <br>         this.TranceferObject.TranceferMessage = temptest;  <br><br>         //调用Server.Transfer()Q{向执行Get.aspx  <br>         Server.Transfer("Get.aspx");  <br>      }  <br>   }  <br>}  <br><br>====================  <br>Get.aspx.cs  <br>====================  <br>using System.Data;  <br>using System.Drawing;  <br>using System.Web;  <br>using System.Web.SessionState;  <br>using System.Web.UI;  <br>using System.Web.UI.WebControls;  <br>using System.Web.UI.HtmlControls;  <br>using WEBLOG.Class;  <br><br>namespace WEBLOG  <br>{  <br>   /// <summary>  <br>   /// Receiver 的摘要说明?nbsp; <br>   /// </summary>  <br>   public class Get : System.Web.UI.Page  <br>   {  <br>     <br>      private void Page_Load(object sender, System.EventArgs e)  <br>      {  <br>         ITransferface mySender;  <br><br>         if(!IsPostBack)  <br>         {  <br>            //判断当前面的HttpHandlerQ如果实CITransferface接口  <br>            //p{换成ITransferface  <br>            if(Context.Handler is ITransferface)  <br>            {  <br>               mySender = (ITransferface)Context.Handler;  <br>               NormalUserRegInfo tempreceive =mySender.TranceferObject.TranceferMessage;  <br>               Response.Write(tempreceive.Answer + "<BR>");  <br>               Response.Write(tempreceive.Quesion + "<BR>");  <br>               Response.Write(tempreceive.UserName + "<BR>");  <br>               Response.Write(tempreceive.UserPassWord + "<BR>");  <br>            }  <br>            else  <br>            {  <br>               Response.Write("没有接收CQ何参?);  <br>            }  <br>         }  <br>      }  <br><br><br>      #region Web H体设计器生成的代码  <br>      override protected void OnInit(EventArgs e)  <br>      {  <br>         //  <br>         // CODEGEN: 该调用是 ASP.NET Web H体设计器所必需的?nbsp; <br>         //  <br>         InitializeComponent();  <br>         base.OnInit(e);  <br>      }  <br>        <br>      /// <summary>  <br>      /// 设计器支持所需的方?- 不要使用代码~辑器修?nbsp; <br>      /// 此方法的内容?nbsp; <br>      /// </summary>  <br>      private void InitializeComponent()  <br>      {      <br>         this.Load += new System.EventHandler(this.Page_Load);  <br><br>      }  <br>      #endregion  <br><br>   }  <br>}  <br> <img src ="http://www.shnenglu.com/andxie99/aggbug/14271.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/andxie99/" target="_blank">思勤无邪</a> 2006-10-27 10:12 <a href="http://www.shnenglu.com/andxie99/archive/2006/10/27/14271.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.fjart.cn" target="_blank">vaþþþúݺ </a>| <a href="http://www.xibu520.cn" target="_blank">þþþ㽶Ƶ</a>| <a href="http://www.11soso.cn" target="_blank">þþþƷһ </a>| <a href="http://www.etfp.cn" target="_blank">þó˹Ʒ</a>| <a href="http://www.dhxxw.cn" target="_blank">wwwþþcom</a>| <a href="http://www.021cp.cn" target="_blank">ѾþþƷѾѾ</a>| <a href="http://www.lftdly.cn" target="_blank">þþþAVվ</a>| <a href="http://www.htlon.cn" target="_blank">þþþþþþŮ</a>| <a href="http://www.shamba.com.cn" target="_blank">޹㽶þþþþ</a>| <a href="http://www.jianfusi.cn" target="_blank">þҹҹ³³ƬӰ </a>| <a href="http://www.myth9.cn" target="_blank">պþþþþ</a>| <a href="http://www.ahhncl.cn" target="_blank">ξþ99ƷþþþþС˵</a>| <a href="http://www.jinhangroup.cn" target="_blank">þ99žŹѿС˵</a>| <a href="http://www.ysbzxx.com.cn" target="_blank">þۺ77777鶹</a>| <a href="http://www.phb321.cn" target="_blank">þþþþ</a>| <a href="http://www.idotime.cn" target="_blank">þֻоƷҳ</a>| <a href="http://www.callmanager.cn" target="_blank">ڸþþþþ</a>| <a href="http://www.panxl.cn" target="_blank">޹Ʒþþ</a>| <a href="http://www.hankale.cn" target="_blank">ֻƬþøպ</a>| <a href="http://www.fl07.cn" target="_blank">þǿdŮվ</a>| <a href="http://www.ouseshi.cn" target="_blank">ĻۺϾþò</a>| <a href="http://www.rodq.cn" target="_blank">99þùۺϾƷ</a>| <a href="http://www.theredqp.cn" target="_blank">97þùۺϾƷŮ</a>| <a href="http://www.yizhangguan.cn" target="_blank">þպƷһ</a>| <a href="http://www.24quba.com.cn" target="_blank">77777ҹþö</a>| <a href="http://www.kong-ya-ji-wang.com.cn" target="_blank">þƵ</a>| <a href="http://www.zsputian.com.cn" target="_blank">69Ʒþþþ9999APGF</a>| <a href="http://www.caribbeanlagoon.com.cn" target="_blank">AëƬþþþƷëƬ</a>| <a href="http://www.dntjj.cn" target="_blank">þþþëƬ</a>| <a href="http://www.le-q.cn" target="_blank">Ӱһþþþó˾Ʒۺ </a>| <a href="http://www.hlccbxw.cn" target="_blank">޾Ʒtvþþþþþþ</a>| <a href="http://www.gloven.cn" target="_blank">þ99ֻƵƷ8</a>| <a href="http://www.mdwmp.com.cn" target="_blank">Ӱһþþþó˾Ʒۺ </a>| <a href="http://www.x247.cn" target="_blank">þѿaëƬ</a>| <a href="http://www.rahd.cn" target="_blank">þþþƷҰ</a>| <a href="http://www.pyspiderking.cn" target="_blank">ƯޱгĻþ</a>| <a href="http://www.pingpangq.cn" target="_blank">ɫۺϾþ</a>| <a href="http://www.gdzhenya.cn" target="_blank">99þþƷž޾Ʒ</a>| <a href="http://www.uuribao.com.cn" target="_blank">þ޾ƷƷ</a>| <a href="http://www.apramomall.cn" target="_blank">ƷëٸAVѾþ</a>| <a href="http://www.qq577.cn" target="_blank">Ʒþ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>