****Label换行显示***
如果是要在网页里体现,label1.Text = "好久不见<br/>你还好吗?";
如果是WinForm程序,label1.Text = "好久不见/r/n你还好吗?";
*****输出显示格式***
C#格式化数值结果表
C货币 string.Format("{0:C3}", 2)$2.000
D十进制 string.Format("{0:D3}", 2) 002
E科学计数法 1.20E+001 1.20E+001
G常规 string.Format("{0:G}", 2) 2
N用分号隔开的数字 string.Format("{0:N}", 250000) 250,000.00
X十六进制 string.Format("{0:X000}", 12) C
变量.ToString()
字符型转换转为字符串
12345.ToString("n"); //生成 12,345.00
12345.ToString("C"); //生成¥12,345.00
12345.ToString("e"); //生成 1.234500e+004
12345.ToString("f4"); //生成 12345.0000
12345.ToString("x"); //生成 3039 (16进制)
12345.ToString("p"); //生成 1,234,500.00%
*****构造DataTable*********
离线模式数据存储与操作
DataSet(DataTable(DataRow,DataColumn,DataCollection))
DataTabledtMarket = newDataTable();
dtMarket.Columns.Add("Market");
dtMarket.Columns.Add("Description");
DataRowdr = dtMarket.Rows.Add();
dr[0] ="HKF";
dr[1] ="HK Market";
DataTable_dtMarket = cApplication.GetInstance()._Market;
if(_dtMarket.Rows[i]["Active"].ToString().Trim() == "Yes"&& _dtMarket.Rows[i]["Market"].ToString().Trim() != "NHKFE")
{
DataRowdr = dtMarket.Rows.Add();
dr[0] =_dtMarket.Rows[i]["Market"].ToString().Trim();
dr[1] =_dtMarket.Rows[i]["Description"].ToString().Trim();
}
******字符串分隔成字符数组**
publicvoidLoadFormDimension(ForminForm)
{
String[]aState;
String[]aForm;
stringstrFormDim;
strFormDim=settings.SettingGet("FormDimension",inForm.Name);
aState =strFormDim.Split('|');//put string split String[];
aForm =aState[1].Split(','); //put string split String[];
inForm.WindowState.Equals(aForm[4].ToString());
if (aForm[4].ToString()=="0")
{
inForm.Top.Equals(aForm[0].ToString());
inForm.Left.Equals(aForm[1].ToString());
inForm.Height.Equals(aForm[2].ToString());
inForm.Width.Equals(aForm[3].ToString());
}
*****键盘输入键控制窗体的操作****
privatevoidform_KeyPress(objectsender,KeyPressEventArgse)
{
if (e.KeyChar == (char)Keys.Enter)
{
SendKeys.Send("{Tab}");
}
if (e.KeyChar == (char)Keys.Escape)
{
this.Close();
}
}
******参数传递************************
Param参数可接受多个参数,不同的类型,
Private void GetParam(params object[] list)
{
For(int i=0;i<list.Lentgh;i++)
{
Consule.WriteLine(List[i]+”/r/n”);
}
}
Private static void Main()
{
GetParam(6,’r’,”Road!”);
Consule.ReadLine();
}
ref关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用ref参数,则方法定义和调用方法都必须显式使用ref关键字。例如:
class RefExample
{
static void Method(ref int i)
{
i = 44;
}
static void Main()
{
int val = 0;
Method(ref val);
// val is now 44
}
}
传递到ref参数的参数必须最先初始化。这与 out不同,out的参数在传递之前不需要显式初始化。
尽管ref和out在运行时的处理方式不同,但它们在编译时的处理方式是相同的。因此,如果一个方法采用ref参数,而另一个方法采用out参数,则无法重载这两个方法。例如,从编译的角度来看,以下代码中的两个方法是完全相同的,因此将不会编译以下代码:
class CS0663_Example
{
// compiler error CS0663: "cannot define overloaded
// methods that differ only on ref and out"
public void SampleMethod(ref int i) { }
public void SampleMethod(out int i) { }
}
但是,如果一个方法采用ref或out参数,而另一个方法不采用这两类参数,则可以进行重载,如下所示:
class RefOutOverloadExample
{
public void SampleMethod(int i) { }
public void SampleMethod(ref int i) { }
}
属性不是变量,因此不能作为ref参数传递
按引用传递值类型(如上所示)是有用的,但是ref对于传递引用类型也是很有用的。这允许被调用的方法修改该引用所引用的对象,因为引用本身是按引用来传递的。下面的示例显示出当引用类型作为ref参数传递时,可以更改对象本身。
class RefRefExample
{
static void Method(ref string s)
{
s = "changed";
}
static void Main()
{
string str = "original";//string is a reference type
Method(ref str);
// str is now "changed"
}
}
****************************************************************************************************
****序列化与反序列化*************
.NET三类序列化方式:XMLSerializer, SOAPSerializer, BinarySerialize
需要序列化该对象,必须在给该类加上Serializable的属性,然后创建一个序列化写入的流:FileStream fileStream = new FileStream("temp.dat", FileMode.Create);然后创建二进制格式器:BinaryFormatter b=new BinaryFormatter();然后是序列化:b.Serialize(fileStream,c);,然后关闭保存流。
///序列化:把对象转换为字节序列的过程为对象
publicstaticbyte[] Serialize(objectgraph)
{
using (System.IO.MemoryStreammem = new System.IO.MemoryStream())
{
BinaryFormatterbinary = new BinaryFormatter();
binary.Serialize(mem,graph);
returnmem.ToArray();
}
}
///反序列化:把字节序列恢复为对象的过程
publicstaticobject DeSerialize(byte[]buffer)
{
using (System.IO.MemoryStreammem = new System.IO.MemoryStream(buffer))
{
mem.Position = 0;
BinaryFormatterbinary = new BinaryFormatter();
returnbinary.Deserialize(mem);
}
}
Other example:XMLSerializer b=newXMLSerializer ();
SOAPSerializer binary =new SOAPSerializer();
*********** 写日志函数 ************
publicstaticvoid LogWriter(stringstrTxt,bool changeLine)
{
FileStreamfileStream=null;
CultureInfoci = new CultureInfo("en-US");
if (changeLine)
{
strTxt="/r/n/""+strTxt+"/"";
}
else
{
strTxt=strTxt+"/"";
}
//Application.ExecutablePath
FillPath =FillPath+DateTime.Now.ToString("yyyy MM dd",ci)+".log";
fileStream=File.Open(FillPath,FileMode.OpenOrCreate);
fileStream.Seek(0,SeekOrigin.End);
StreamWriterWriterStr = newStreamWriter(fileStream);
WriterStr.WriteLine(DateTime.Now.ToString("yyyy:MM:dd HH:MM:SS " + " ") +strTxt +" ");
WriterStr.Flush();
fileStream.Close();
}
**********发送邮件*************
通过.Net FrameWork 2.0下提供的“System.Net.Mail”可以轻松的实现,本文列举了3种途径来发送:
1.通过Localhost;
2.通过普通SMTP;
3.通过SSL的SMTP;
下面一个一个来说:
1.通过LocalHost
1publicvoid SendMailLocalhost()
2...{
3 System.Net.Mail.MailMessage msg =new System.Net.Mail.MailMessage();
4 msg.To.Add("a@a.com");
5 msg.To.Add("b@b.com");
6/**//*
7 * msg.To.Add("b@b.com");
8 * msg.To.Add("b@b.com");
9 * msg.To.Add("b@b.com");可以发送给多人
10 */
11 msg.CC.Add("c@c.com");
12/**//*
13 * msg.CC.Add("c@c.com");
14 * msg.CC.Add("c@c.com");可以抄送给多人
15 */
16 msg.From =new MailAddress("a@a.com","AlphaWu", System.Text.Encoding.UTF8);
17/**//*上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/
18 msg.Subject ="这是测试邮件";//邮件标题
19msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码
20msg.Body ="邮件内容";//邮件内容
21msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码
22msg.IsBodyHtml =false;//是否是HTML邮件
23msg.Priority = MailPriority.High;//邮件优先级
24
25 SmtpClient client =new SmtpClient();
26 client.Host ="localhost";
27object userState = msg;
28try
29...{
30 client.SendAsync(msg, userState);
31//简单一点儿可以client.Send(msg);
32MessageBox.Show("发送成功");
33 }
34catch (System.Net.Mail.SmtpException ex)
35...{
36 MessageBox.Show(ex.Message,"发送邮件出错");
37 }
38 }
39
2.通过普通SMTP
1publicvoid SendMailUseZj()
2...{
3 System.Net.Mail.MailMessage msg =new System.Net.Mail.MailMessage();
4 msg.To.Add("a@a.com");
5 msg.To.Add("b@b.com");
6/**//*
7 * msg.To.Add("b@b.com");
8 * msg.To.Add("b@b.com");
9 * msg.To.Add("b@b.com");可以发送给多人
10 */
11 msg.CC.Add("c@c.com");
12/**//*
13 * msg.CC.Add("c@c.com");
14 * msg.CC.Add("c@c.com");可以抄送给多人
15 */
16 msg.From =new MailAddress("a@a.com","AlphaWu", System.Text.Encoding.UTF8);
17/**//*上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/
18 msg.Subject ="这是测试邮件";//邮件标题
19msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码
20msg.Body ="邮件内容";//邮件内容
21msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码
22msg.IsBodyHtml =false;//是否是HTML邮件
23msg.Priority = MailPriority.High;//邮件优先级
24
25 SmtpClient client =new SmtpClient();
26 client.Credentials =new System.Net.NetworkCredential("username@zj.com","userpass");
27//在zj.com注册的邮箱和密码
28client.Host ="smtp.zj.com";
29object userState = msg;
30try
31...{
32 client.SendAsync(msg, userState);
33//简单一点儿可以client.Send(msg);
34MessageBox.Show("发送成功");
35 }
36catch (System.Net.Mail.SmtpException ex)
37...{
38 MessageBox.Show(ex.Message,"发送邮件出错");
39 }
40 }
3.通过SSL的SMTP
1publicvoid SendMailUseGmail()
2...{
3 System.Net.Mail.MailMessage msg =new System.Net.Mail.MailMessage();
4 msg.To.Add("a@a.com");
5 msg.To.Add("b@b.com");
6/**//*
7 * msg.To.Add("b@b.com");
8 * msg.To.Add("b@b.com");
9 * msg.To.Add("b@b.com");可以发送给多人
10 */
11 msg.CC.Add("c@c.com");
12/**//*
13 * msg.CC.Add("c@c.com");
14 * msg.CC.Add("c@c.com");可以抄送给多人
15 */
16 msg.From =new MailAddress("a@a.com","AlphaWu", System.Text.Encoding.UTF8);
17/**//*上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/
18 msg.Subject ="这是测试邮件";//邮件标题
19msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码
20msg.Body ="邮件内容";//邮件内容
21msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码
22msg.IsBodyHtml =false;//是否是HTML邮件
23msg.Priority = MailPriority.High;//邮件优先级
24
25 SmtpClient client =new SmtpClient();
26 client.Credentials =new System.Net.NetworkCredential("username@gmail.com","password");
27//上述写你的GMail邮箱和密码
28client.Port =587;//Gmail使用的端口
29client.Host ="smtp.gmail.com";
30 client.EnableSsl =true;//经过ssl加密
31object userState = msg;
32try
33...{
34 client.SendAsync(msg, userState);
35//简单一点儿可以client.Send(msg);
36MessageBox.Show("发送成功");
37 }
38catch (System.Net.Mail.SmtpException ex)
39...{
40 MessageBox.Show(ex.Message,"发送邮件出错");
41 }
42 }
43
*************LINQ***************
publicclassPepole
{
private string_Name;
private int_Age;
publicstringName
{
get {return_Name; }
}
publicintAge
{
get {return_Age; }
}
publicPepole(stringname,int age)
{
this._Name=name;
this._Age=age;
}
}
Form Program:
privatevoidbutton1_Click(objectsender,EventArgse)
{
List<Pepole>strArry =new List<Pepole>();
Pepoleperson1=newPepole("Jeson", 18);
Pepoleperson2 = new Pepole("Peter", 14);
strArry.Add(person1);
strArry.Add(person2);
Pepole[]pep={newPepole("Jeson",18),newPepole("Peter",15)};
//Language Interate Query;
varquery1 =
fromvar1in pep
selectvar1;
//Language Interate Query;
varquery2 =
fromvar2in strArry
wherevar2.Age > 15
selectvar2;
foreach (Pepoleitem1in query1)
{textBox1.Text =textBox1.Text +item1.Name +":" +item1.Age+",";}
foreach (Pepoleitem2in query2)
{textBox2.Text =textBox2.Text +item2.Name +":" +item2.Age +",";}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
stringstrnum=textBox1.Text.Replace(",","");
intnum =strnum.Length;
int[]list=newint[num];
for (intj = 0; j < num;j++)
{
list[j]=(int.Parse(strnum.Substring(j, 1)));
}
//Language Interate Query;
varquery3=
fromvar3in list
orderbyvar3descending
selectvar3;
foreach(varitemin query3)
{
textBox2.Text =textBox2.Text +item+",";
}
}