语法糖
甜1 List<Student> Students = new List<Student>() { new Student(){ Num="001", Name="John"},//使用对象初始值设定项初始化对象,代替构造函数 new Student(){ Num="002", Name="Marry"}, new Student(){ Num="003", Name="John"} };//使用集合初始值设定项初始化集合,不用重复调用Add方法
甜2 Lamda表达式:它是升级版的匿名方法,其作用是简化匿名方法的写法。写法(形参列表)=>{函数体}
拿delegate(Student student) { return student.Name == "John"; }这个匿名方法为例,我们的参数就只有student一个,形参我们就使用s代替。
Lamda表达式就是 s=>s.Name=="John"。
var John = Students.FindAll(s => s.Name == "John");//使用var声明匿名类型,其实John是个List<Student> John.ForEach(j => Console.WriteLine(j));//使用Lamda表达式 Console.ReadKey();
foreach (var student in Students.FindAll(delegate(Student student) { return student.Name == "John"; }))//使用匿名方法完成FindStudent类的功能 { Console.WriteLine(student); }
甜3
private
string
_myName;
public
string
MyName
{
get
{
return
_myName; }
set
{ _myName = value; }
}
public
string
MyName {
get
;
set
; }
foreach
(
string
item
in
list)
{
Console.WriteLine(item);
}
list.ForEach(a => Console.WriteLine(a));
甜5
StreamWriter sw = null;
try
{
sw = new StreamWriter("d:\abc.txt");
sw.WriteLine("test");
}
finally {
if(sw!= null) sw.Dispose();
}
using
(var sw =
new
StreamWriter(
"d:\abc.txt"
)) {
sw.WriteLine(
"test"
);
}
var writer = new StreamWriter(path); |
1
|
for (var i=0;i<100;i++){} |
甜7. 问号的演变
老掉牙的一个问号+冒号
var b = 3;
var a = b > 9?b.ToString():”0”+b;
string
a =
null
;
var b = a??””;
1. event:监听者模式;
2. delegate:类,编译器会生成一个新类,为防止类泛滥,可用预定义的Action系列;结合event可实现监听者模式;Java中可用interface结合监听array简单实现;
3.C#中的@符号的使用及注意事项。
(1)字符串中的用法
字符@表示,其后的字符串是个“逐字字符串”(verbatim string)。@只能对字符串常量作用。
1>.用于文件路径
以下是引用片段:string s_FilePath ="C:\\Program Files\\Microsoft.NET\\test.txt";
相当于
以下是引用片段:string s_FilePath =@"C:\Program Files\Microsoft.NET\test.txt";
2>.用@表示的字符串能够跨越数行。用于在CS中写JS或SQL代码比较方便。
以下是引用片段:
string s_MultiRows = @"Line1
Line2
Line3";
string s_JavaScript = @" ";
(2) 标识符中的用法
在 C# 规范中, @ 可以作为标识符(类名、变量名、方法名等)的第一个字符,以允许C# 中保留关键字作为自己定义的标识符。
如
以下是引用片段:
class @class
{
public static void @static(bool @bool) {
if (@bool)
System.Console.WriteLine("true");
else
System.Console.WriteLine("false");
}
}
class Class1
{
static void M() {
clu0061ss.stu0061tic(true);
}
}