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

 

posted @ 2015-04-26 11:34  marsh  阅读(240)  评论(0编辑  收藏  举报