语法糖
甜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);
}
}

浙公网安备 33010602011771号