(转)asp.net一些总结
1.字符串拼接:
string msg = "Hello, " + thisUser.Name + ".Today is " + DateTime.Now.ToString( ));
更有效率的写法:
string msg = string.Format ( "Hello, {0}. Today is {1}", thisUser.Name, DateTime.Now.ToString( ));
2.大量数据拼接则使用StringBuilder。
3.字符串的比较:
if ( str != "" )与if ( str == "" )
更有效率的写法:
if ( str.Length != 0 )与if ( str.Length ==0 )
有效率且可读性更好的写法:
if ( str != string.Empty )与if( str.Equals(string.Empty)
4.尽量避免box与unbox,因此使用集合时如果频繁更新集合内容,则推荐使用泛型。
一、消除数组中的重复项。
近期在做项目的时候,要求消除数组中的重复项,如过在没有LINQ前,这好像要写个函数还实现这个功能,但有了linq后,这个功能那是相当的简单的啊,如下面的代码:
string[] stringArray = { "a", "b", "c", "a", "b", "e" };
Console.WriteLine(stringArray.Distinct().ToArray().Length);
foreach (string s in stringArray.Distinct().ToArray())
Console.Write(s);
Console.ReadLine();
程序执行的结果:4,abce。这样,消除数组中的重复项只需要Array.Distinct().ToArray()就可以实现。Linq这是个好东西啊。
二、Textbox的readonly属性和disabled属性
在项目中,需要经常用到这两个属性,区别如下:
1. readonly属性
代码:<input type="text" value="fisker" onclick="alert(this.value);" readonly />
输入框只读,不能编辑,同样表单可以获得值。
3,disabled
代码:<input type="text" value="fisker" onclick="alert(this.value);" disabled />
输入框灰色,不能编辑,以用JS改变或获得其值,但提交时并不提交该值。
三、跨页面的传送中的一个问题
跨页面的传送就是提交窗体(例如Page1.aspx),并把这个窗体和所有控件的值都传送给另一个页面(Page2.aspx)。实现这个功能就是在控件Button上添加属性PostbackUrl即可。
但是这里需要在点击Button时,首先执行一段javascript代码后,在实现跨页面的传送,直接用Button完不成这个功能,这时候就需要另一个控件LinkButton了,然后再将LinkButton伪装成Button。哈哈。如下面的代码:
<asp:LinkButton ID="LinkButtonSentEmail" runat="server" OnClientClick="getEmailString();return true;"
PostBackUrl="~/EmailEdit.aspx" Width="70px">发送邮件</asp:LinkButton>
执行的javaxcript为:
但是,还有一个问题是,如何把LinkButton伪装成Button的形状,下面的CSS代码就能解决这个问题:
<style type="text/css">
#LinkButtonSentEmail
{
padding: 3px;
border: 2px outset;
cursor: pointer;
background-color: #FFFFFF;
text-align: center;
height: 14px;
text-decoration: none;
color: #000000;
clear: both;
}
</style>
这样看起来就好像是Button出发的这个跨页面的传送了。
以上三个问题是我在做项目的时候遇到的小问题,把它们写下来,感觉不错。