语法糖

甜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; }
 
甜4
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");
}
 
 
甜6
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;
新添加两个问号 ??,它表示左边的变量如果为null则值为右边的变量,否则就是左边的变量值
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); 
       } 
    } 

 

 

 

posted @ 2013-04-09 09:54  aggier  阅读(176)  评论(0编辑  收藏  举报