delegates && xml && LINQ
先把上次的delegates总结一下~
1.delegates
delegates将event与action或method关联起来。封装member function。相当于c++里的指针,但功能多于指针。
结构为:delegate datatype methodname(object a,object b);
delegates的方法有:①event handling:当事件发生时,调用函数;
② callbacks:当结束某一动作时,调用函数;
1.声明与简单的使用。
1 public delegate void DelegateDemo(String s); 2 static void Main(string[] args) 3 { 4 DelegateDemo dele = new DelegateDemo(Greeting); 5 dele("hello!"); 6 } 7 static void Greeting(string s) 8 { 9 Console.WriteLine(s); 10 }
结果为:
同样程序可变为:
1 class GreetingHello 2 { 3 public void Greeting(string s) 4 { 5 Console.WriteLine(s); 6 } 7 } 8 public class setArrBounds 9 { 10 11 public delegate void DelegateDemo(String s); 12 static void Main(string[] args) 13 { 14 GreetingHello gh = new GreetingHello(); 15 DelegateDemo dele = new DelegateDemo(gh.Greeting); 16 dele("hello!"); 17 } 18 19 }
结果相同。
2.multicast delegates 多重委托
1 class GreetingHello 2 { 3 public void Greeting(string s) 4 { 5 Console.WriteLine(s); 6 } 7 public void SendGreetingToFile(string s) 8 { 9 StreamWriter writer = 10 new StreamWriter(@"C:\Users\lenovo\Desktop\delegates.txt"); 11 writer.WriteLine(s); 12 writer.Close(); 13 } 14 } 15 public class setArrBounds 16 { 17 18 public delegate void DelegateDemo(String s); 19 static void Main(string[] args) 20 { 21 GreetingHello gh = new GreetingHello(); 22 DelegateDemo dele = new DelegateDemo(gh.Greeting); 23 dele += new DelegateDemo(gh.SendGreetingToFile); 24 dele("hello,delegates!"); 25 } 26 27 }
结果:
3.thread delegates 线程委托
4.anonymous delegates 匿名方法
即不声明完整的类,而是用匿名类,这样可以使代码更加简洁易懂。但不适合类中含有太多方法。
1 public delegate void DelegateDemo(String s); 2 static void Main(string[] args) 3 { 4 5 DelegateDemo dele = delegate(string s) 6 { 7 Console.WriteLine(s); 8 }; 9 10 dele("It's anonymous way~~"); 11 }
结果为:
下面是新的内容
1.xml
1)xml(可扩展标记语言),它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
xml 与 html(超文本标记语言) 的比较:
是否可自定义tag | 是否成对出现 | 是否大小写敏感 | |
xml | 是 | 是 | 是 |
html | 否 | 否 | 否 |
2)XML 文档的第一行可以是一个 XML 声明,根元素的开始和结束标记用于包围 XML 文档的内容。一个文件只能有一个根元素,并且需要使用 “包装器” 包含它。在下面的例子中<recipe>就是一个跟元素。在构建文档时,内容和其他标记必须放在 <recipe>
和 </recipe>
之间。
1 <?xml version="1.0" encoding="utf-8"?> 2 <recipe> 3 <recipename>Ice Cream Sundae</recipename> 4 <preptime>5 minutes</preptime> 5 </recipe>
3)命名元素
英文字母开头,不允许出现空格,前后必须保持一致。
4)嵌套元素
一定要让子元素在父元素里面,不能相互穿插。
5)添加属性
属性包含在<>中名字的后面,用双引号引起来。
1 <?xml version="1.0" encoding="utf-8"?> 2 <recipe type="dessert"> 3 <recipename cuisine="american" servings="1">Ice Cream Sundae</recipename> 4 <preptime>5 minutes</preptime> 5 </recipe>
关于创建xml文档可以在前台,也可以在后台。
相关参照http://www.cnblogs.com/jhxk/articles/1872930.html
2.LINQ(语言集成查询)
是使用c#代码来查询数据库。
因为linq默认不能与mysql相连,但是我的电脑里没有sql server,只有mysql,所以就百度了一下怎么 linq for mysql。
首先下载安装mysql-connector-net,再重启电脑,打开vs后在服务器资源管理器中右键数据连接,添加链接,会出现下面的窗口:点击mysql
然后输入你的server name, user name,password即可添加成功。
(这里注意了,这个是需要有密码的用户名的,而mysql用的时候一般都默认root无密码登陆,修改密码时一定要百度好了再改,千万不要瞎改,下场就是卸了mysql重装(血的教训啊!),也可以对特定的数据库自己创建一个新用户(推荐))
项目-->新添新项-->ADO.NET实体数据模型
然后一路“下一步”,就可以运行了~~效果如下(只是简单地建了三个table, 没有导入数据)
end