您的位置:首页 > 其它

C2第 1 节值类型引用类型介绍和字符串练习

2015-07-06 14:50 405 查看

1 第二章第 1 节值类型引用类型介绍和字符串练习
 2 [code]using System;
3 using System.Collections.Generic;
4 using System.IO;
5 using System.Linq;
6 using System.Text;
7 using System.Threading.Tasks;
8
9 namespace 字符串联系
10 {
11     class Program
12     {
13         static void Main(string[] args)
14         {
15             string[] txts = File.ReadAllLines("info.csv", Encoding.Default);
16
17             //拿到一个字符串数组进行遍历
18             for(int i=0;i<txts.Length;i++)
19             {
20                 //对读取的每一行进行 //去掉多余的符号,比如逗号、双引号//将读取的结果返回到一个数组中去
21                 string[] lines =txts[i].Replace("\"", "").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
22                 Console.WriteLine("业主的姓名是“{0}”,手机是{1}", lines[0] + lines[1], lines[2]);//lines[0]+lines[1]合并为{0}的占位符
23             }
24             Console.ReadKey();
25         }
26     }
27 }
28
29 using System;
30 using System.Collections.Generic;
31 using System.Linq;
32 using System.Text;
33 using System.Threading.Tasks;
34
35 namespace 值类型与引用类型
36 {
37     class Program
38     {
39         static void Main(string[] args)
40         {
41             #region 字符串倒序输出
42
43
44             ////接收用户输入的字符串,将其中的字符以与输入相反的顺序输出
45             //Console.WriteLine("请输入要转换的字符串:");
46             //string str = Console.ReadLine();
47             //for (int i = str.Length - 1; i >= 0; i--)
48             //{
49             //    Console.Write(str[i]);//给变输出的方式。就成了按一行输出了
50
51             //}
52
53             //// str = getReverse(str);
54
55             ////Console.WriteLine(str);
56             // Console.ReadKey();
57             #endregion
58             #region //接收用户输入的一句英文,将其中的单词,以反序的方式输出
59             //接收用户输入的一句英文,将其中的单词,以反序的方式输出
60             Console.WriteLine("请输入一句英文:");
61             string str = Console.ReadLine();
62             //I Love You
63             string[] msg = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
64             //     返回值不包括含有空字符串的数组元素
65             for (int i = 0; i < msg.Length; i++)
66             {
67                 msg[i] = getReverse(msg[i]);//对每个单词进行反序
68                 Console.Write(msg[i] + ' ');
69             }
70             Console.ReadKey();
71             #endregion
72         }
73
74
75         #region 字符串倒叙输出定义的方法
76
77         private static string getReverse(string str)
78         {
79             char[] ch = str.ToCharArray(); //字符串转化为一个字符的数组
80             char Temp=' ';//需要加一个空格
81             for(int i=0;i<ch.Length/2;i++)
82             {
83                 Temp=ch[i];
84                 ch[i]=ch[ch.Length-1-i];
85                 ch[ch.Length-1-i]=Temp;
86             }
87             return new string(ch);//将字符数组放进来,就可以得到一个字符串//字符串转化为//一个字符的数组转化为一个字符串;
88
89         }
90         //注意注释 *  与 / 之间不能有空格的出现;
91         #endregion
92
93     }
94 }
95
96


C2第 2 节: 字符串的练习下

1 C2第 2 节: 字符串的练习下
2 [code]using System;
3 using System.Collections.Generic;
4 using System.Linq;
5 using System.Text;
6 using System.Threading.Tasks;
7
8 namespace 字符串练习2
9 {
10     class Program
11     {
12
13         static void Main(string[] args)
14         {
15
16             #region //练习:123-456---7---89-----123----2把类似的字符串中重复符号”-”去掉,
17             ////既得到123-456-7-89-123-2.
18             //string str = "123-456---7---89-----123----2";
19             //string[] txt = str.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);
20             //string newstr = string.Join("-", txt);//字符数字有一个静态的Join方法、、返回值是一个新的字符串
21             //Console.WriteLine(newstr);
22             //Console.ReadKey();
23             #endregion
24              //* 练习:“192.168.10.5[port=21,type=ftp]”,这个字符串表示IP地址为192.168.10.5的服务器的21端口提供的是ftp服务,其中如果“,type=ftp”部分被省略,则默认为http服务。请用程序解析此字符串,然后打印出“IP地址为***的服务器的***端口提供的服务为***”
25             string str = "192.168.10.5[port=21,type=ftp]";
26             string[] msg=str.Split(new string[] { "[port=", "type=", "]" },
27                 StringSplitOptions.RemoveEmptyEntries);
28             Console.WriteLine("Ip地址:{0}",msg[0]);
29             Console.WriteLine("端口号:{0}",msg[1]);
30             Console.WriteLine("协议类型:{0}",msg.Length>2?msg[2]:"http");
31             Console.ReadKey();
32         }
33
34
35     }
36 }
37


  C2第3节ref和out、装箱与拆箱

C2第3节ref和out、装箱与拆箱
1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。
2、使用ref和out时,在方法的参数和执行方法时,都要加ref或out关键字。以满足匹配。
3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。
装箱拆箱

1 [code]
2 using System;
3 using System.Collections.Generic;
4 using System.Linq;
5 using System.Text;
6 using System.Threading.Tasks;
7
8 namespace ref与out
9 {
10 class Program
11 {
12 static void Main(string[] args)
13 {
14 //int n=10;
15 //int result = Show(ref n);//使用ref型参数时,传入的参数必须先被初始化。
16 //Console.WriteLine(result);
17 //Console.ReadKey();
18 int num ;//= 500; //此处的变量num没必要初始化
19 int result = Show(out num);//记得此处需要加关键字 out
20 Console.WriteLine(result);
21 Console.ReadKey();
22 }
23 ////ref型参数可进可出方法,但在进入前需要先初始化
24 //public static int Show(ref int num)
25 //{
26 // return num + 1000;
27 //}
28 ////out型参数只出不进(可以进)方法,但是在方法里边需要先初始化
29 public static int Show(out int num)//错误    1    无法定义重载方法“Show”,因为它与其他方法仅在 ref 和 out 上有差别//说明ref与out是等价的关系、、ref与out只有一个存在
30 {
31 num = 100;//此处num前边不需要加关键字 int num = 100;
32 return num + 123;//错误    1    当前上下文中不存在名称“num”//需要先对out值在方法中初始化
33
34 }
35 }
36 }
37

38
39
40 using System;
41 using System.Collections.Generic;
42 using System.Linq;
43 using System.Text;
44 using System.Threading.Tasks;
45
46 namespace 装箱与拆箱
47 {
48 class Program
49 {
50 static void Main(string[] args)
51 {
52 int num = 100;
53 object obj = num;//装箱
54 //值类型隐式的转换为引用类型--装箱
55
56 double db = (object)obj;//拆箱但是失败了,装箱是什么类型的值就读取什么类型的值
57
58 }
59 }
60 }
61
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: