C#,回车,换行符号
在C# 中,我们用字符串"\r\n" 表示回车换行符。
string str = "第一行\r\n第二行";
但是我们更推荐Environment.NewLine(名称空间为System),Environment 是类,NewLine 是字符串属性,用于获取当前环境中定义的回车换行符字符串。
string str = "第一行" + Environment.NewLine + "第二行";
在Windows 环境中,C# 语言Environment.NewLine == "\r\n" 结果为true。
小知识
名称英文描述ASCII 值C# 表示
回车符Carriage Return 回到一行开头13 \r
换行符New Line 下一行开头位置10 \n
回车换行符有时也简称为回车符或换行符。
lambda表达式
如其他地方所述,委托是一种包装方法调用的类型。就像类型一样,可以在方法之间传递委托实例,并且可以像方法一样调用委托实例。匿名函数是一个“内联”语句或表达式,可在需要委托类型的任何地方使用。可以使用匿名函数来初始化命名委托,或传递命名委托(而不是命名委托类型)作为方法参数。
共有两种匿名函数
·Lambda 表达式(C# 编程指南).
·匿名方法(C# 编程指南)
在C# 1.0 中,您通过使用在代码中其他位置定义的方法显式初始化委托来创建委托的实例。C# 2.0 引入了匿名方法的概念,作为一种编写可在委托调用中执行的未命名内联语句块的方式。C# 3.0 引入了Lambda 表达式,这种表达式与匿名方法的概念类似,但更具表现力并且更简练。这两个功能统称为“匿名函数”。通常,针对.NET Framework 版本3.5 及更高版本的应用程序应使用Lambda 表达式。
下面的示例演示了从C# 1.0 到C# 3.0 委托创建过程的发展:
lambda编程class Test
{
delegate void TestDelegate(string s);//定义委托
static void M(string s) //方法
{
Console.WriteLine(s);
}
static void Main(string[] args)
{
// Original delegate syntax required
// initialization with a named method.
TestDelegate testdelA = new TestDelegate(M);
/
/ C# 2.0: A delegate can be initialized with
// inline code, called an "anonymous method." This
// method takes a string as an input parameter.
TestDelegate testDelB = delegate(string s) { Console.WriteLine(s); };
// C# 3.0. A delegate can be initialized with
// a lambda expression. The lambda also takes a string
// as an input parameter (x). The type of x is inferred by the compiler.
TestDelegate testDelC = (x) => { Console.WriteLine(x); };
// Invoke the delegates.
testdelA("Hello. My name is M and I write lines.");
testDelB("That's nothing. I'm anonymous and ");
testDelC("I'm a famous author.");
// Keep console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
/* Output:
Hello. My name is M and I write lines.
That's nothing. I'm anonymous and
I'm a famous author.
Press any key to exit.
*/
Lambda 表达式(C# 编程指南)
“Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。
所有Lambda 表达式都使用Lambda 运算符=>,该运算符读为“goes to”。该Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。Lambda 表达式x => x * x 读作“x goes to x times x”。可以将此表达式分配给委托类型,如下所示:
delegate int del(int i);
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
项目用例:
channle.Opening += ( sender, e ) => { LoggerPreparation.Write( "开始启动DCAU的Proxy" ); };
分解
static void channle_Opening(object sender, EventArgs e)
{
LoggerPreparation.Write("开始启动DCAU的Proxy");
}
channle.Opening += new EventHandler(channle_Opening);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论