页面部分
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<h2>
使用VS控件updatePanel实现无刷新
</h2>
<p>
<asp:UpdatePanel ID="UpdatePanel1" RenderMode="Block" UpdateMode="Conditional" runat="server">
<ContentTemplate>
点击按钮从服务器获取当前时间<asp:TextBox ID="txtTime" runat="server"></asp:TextBox>
<asp:Button ID="btn1" runat="server" Text="Button" onclick="btn1_Click" />
</ContentTemplate>
<Triggers>
<%--<asp:PostBackTrigger ControlID="btn1" />--%>
<asp:AsyncPostBackTrigger ControlID="btn1"/>
</Triggers>
</asp:UpdatePanel>
</p>
后台代码
protected void btn1_Click(object sender, EventArgs e)
{
txtTime.Text = DateTime.Now.ToString();
}
//利用反射进行动态加载和调用.
Assembly ass=Assembly.LoadFrom(DllPath); //根据DLL的路径加载DLL
Type type=ass.GetType("namespace.ClassName");//根据命名空间.类名找到类
Object obj = Activator.CreateInstance(type,params[]);//创建实例
MethodInfo mi=type.GetMethod(“MehtodName”);//根据方法名找到方法
mi.Invoke(obj,params[]);//调用方法。
说的很明白。
转自:http://pub.itpub.net/post/20969/309872?SelectActiveColorSchema=1
题目链接:http://www.cnblogs.com/njucslzh/archive/2011/09/01/2160428.html 5楼 Scan.的答案非常简洁。
我改成C#的代码如下:
static void f(List<string> strList, string tempStr, int d)
{
++d;
for (char c = 'a'; c <= 'y'; ++c)
{
string newS = tempStr + c;
strList.Add(newS);
if (d < 4)
{
f(strList, newS, d);
}
}
}
static void Main(string[] args)
{
List<string> strs = new List<string>();
f(strs, string.Empty, 0);
// 测试:
for (int i = 0; i < 50; ++i)
Console.WriteLine(strs[i]);
Console.WriteLine(strs.BinarySearch("aaaa"));
Console.Read();
}
于是就想学习下,但是对于其中:方法第一遍执行结束后又跑到if(d<4)里执行f(strList, newS, d);一直感到困惑,所以就对作者求助。
作者Scan.回答:"
aaay结束后,函数返回,但返回的是第4层递归,查看变量d应该是4;而第四层返回后,会继续执行第3层递归,这是第3层的for循环刚好迭代到‘b’,变量d是3。
随着递归深度加深,每一层的递归数据都保留在栈上,因此第4层函数返回整个过程没有完结,需要第1层完结才最终结束。 "
顿时豁然开朗!
总结:
- 当方法执行到“调用自身方法”的时候又会从头开始执行,而上次执行到“调用自身方法”处并不会消失。
- 当最后一层方法执行完毕返回时,会从继续执行上一层方法剩下的部分(从“调用自身方法”处继续往下执行)。
感言:原来是对递归不够理解啊。。想要写出这样精彩的算法看来还需要苦练内功啊。这里还要感谢下作者Scan.的悉心讲解。
<!--------------------忠言逆耳,有则改之,无则加勉。--------------------->
1.———每天一上班就进入状态,快速聚焦最重要的工作项上面。
2.———在精神不佳、注意力不集中、的时候用来处理事务。
3.———让自己有时间紧迫感。
4.———真诚沟通、面带微笑、自信。
5.———利用好空闲时间提高自己技术。
6.———保持工作环境整洁、有序。
7.———保持自信、保持好心情。
<!--------------------工作要求--------------------->
1.———理解需求。
2.———功能至上,不写无用代码。
3.———代码书写要规范。
4.———及时注释。
5.———添加真实数据。
6.———尽早调试,发现BUG及时修改。
7.———关注项目进度,清楚完成自己的工作。
8.———没有把握,不乱说话。
public string DiffTime(DateTime time)
{
TimeSpan nowTime = new TimeSpan(DateTime.Now.Ticks);
TimeSpan releaseTime = new TimeSpan(time.Ticks);
TimeSpan diff = nowTime.Subtract(releaseTime).Duration();
if (diff.Days > 0)
{
return diff.Days + "天前";
}
else if (diff.Hours > 0)
{
return diff.Hours + "小时前";
}
else if (diff.Minutes > 0)
{
return diff.Minutes + "分钟前";
}
else// if (diff.Seconds > 0)
{
return diff.Seconds + "秒前";
}
}
