c#快速热身篇(附例子、代码)
第1章第一个C#程序
1.2 使用Visual Studio创建和运行
1.2.1 C#控制台应用程序的步骤
(1).新建项目 (2).生成可执行文件 (3).运行
1.2.2 项目文件夹说明
1.2.3 C#的Main() 方法
(1) Main首字母大写
(2) 返回值可以为void或者iint
(3) 命令行参数是可选的
(4) 四种Main()方法
语法:
[csharp] view plain copy
1. static void Main(string[] args){}//自动生成
2. static int Main(string[] args){}
3. static void Main(){}
static int Main(){}
1.3 c#中的变量和常量
1.3.1 C#中的数据类型
常用数据类型 | Java | C# |
整形 | int | int |
浮点型 | float | float |
双精度型 | double | double |
字符串型 | string | string |
布尔型 | boolean | bool |
1.3.2 C#中变量的命名规则有哪些?
(1) 组成:数字,英文字母,下划线。
(2) 开头:英文字母,下划线。
(3) 不能使用关键字
(4) 见名知意Camel命名法
1.3.3 c#中的常量
使用const 关键字声明常量
1.4 Console类
1.4.1. 控制台应用程序输入/输出方法
[csharp] view plain copy
1. //输入方法
2. Console.ReadLine();
3. //输出方法
4. Console.Write();
5. Console.WriteLine();
1.5.2. 理解类和对象
使用命名空间组织程序,引入其他命名空间使用using关键字
1.5.3. 注释
有三种注释类型
单行注释://
多行注释:/*
*/
文档注释:///
C#中的region
1.5.4.visual studio调试技巧
1.设置断点
F5:开始调试;
Shift + F5:停止调试;
F9:设置或取消断点;
Ctrl + F9:取消断点;
F10:单步执行。
F2:转到所调用过程或变量的定义。
Ctrl + F2:将焦点转移到类的下拉列表框。
2.监控变量值
第2章 c#语法快速热身
2.1 选择结构
2.1.1 if结构
C#和java完全一样
2.1.2 switch结构
紧跟在switch结构后面的表达式的值或变量可以是int,short,byte,char,枚举类型,string等数据类型
2.2 数组和循环
2.2.1 一维数组
C#
[csharp] view plain copy
1. int[] arr1 = new int[5] { 0,1,2,3,4};
2. int[] arr2 = new int[] { 0,1,2,3,4};//省略长度
3. int[] arr3 = { 0,1,2,3,4};//省略new
java
[java] view plain copy
1. int[] arr2 = new int[] { 0,1,2,3,4};//省略长度
2. int arr3[] = new int[] { 0,1,2,3,4};
3. int[] arr4 = { 0,1,2,3,4};//省略new
4. int arr5[] = { 0,1,2,3,4};//省略new
4.
[csharp] view plain copy
1. String line = "他是教小孩的";
2. foreach (char c in line)
3. {
4. Console.WriteLine(c);
5. }
2.3冒泡排序
2.3.1 冒泡排序算法
[csharp] view plain copy
1. /// <summary>
2. /// 从小到大排序
3. /// </summary>
4. /// <param name="arr"></param>
5. public void change(int[] arr){
6. for (int i = 0; i < arr.Length -1; i++)
7. {
8. for (int j = 0; j < arr.Length - 1 - i; j++)
9. {
10. if (arr[j] > arr[j + 1])
11. {
12. //交换元素
13. int temp = arr[j];
14. arr[j] = arr[j + 1];
15. arr[j + 1] = temp;
16.
17. }
18. }
19. }
20. }
第3章 使用属性升级的MyBank
3.1 private 访问修饰符
3.1.2 访问修饰符
访问修饰符 | 访问权限 | 访问级别 |
public | 不受任何限制 | 最高 |
private | 只有类的内部可以使用 | 最低 |
3.2 this关键字
在面向对象的编程语言中,this关键字是指当前对象的本身,通过this可以引用当前类的成员变量和方法。
3.3 C#属性
封装字段——将类中的字段,属性帮到一起
[csharp] view plain copy
1. public class Student
2. {
3. //学员姓名
4. private string _name;
5. /// <summary>
6. /// get和set都存在:读写属性
7. /// 只有get时:只读属性
8. /// 只有set时:只写属性
9. /// </summary>
10. public string Name
11. {
12. get { return _name; }
13. set { _name = value; }
14.
15. }
16. }
对象初始化
[csharp] view plain copy
1. Student student2 = new Student() { Name="爸爸去哪了"};
3.4 值传递和引用传递
3.4.1 值传递
[csharp] view plain copy
class Program
{
//Main()方法
static void Main(string[] args)
{
int i1 = 12;
int i2 = 15;
Console.WriteLine("交换前,i1={0},i2={1}",i1,i2);
Swap(i1, i2);
Console.WriteLine("交换后,i1={0},i2={1}", i1, i2);
Console.ReadLine();
}
/// <summary>
/// 值传递
/// </summary>
/// <param name="num1"></param>
/// <param name="num2"></param>
public static void Swap(int num1, int num2)
{
int temp;//中间变量
temp = num1;
num1 = num2;
num2 = temp;
}
}
输出结果:
上面的方法Swap就是只把参数的值传到方法里面,如果在被调用的方法中对参数的值进行了修改,在方法调用之后,参数仍然是原来的值
3.4.2 按引用传递参数
[csharp] view plain copy
1. class Program
2. {
3. //Main()方法
4. static void Main(string[] args)
5. {
6.
7. int i1 = 12;
8. int i2 = 15;
Console.WriteLine("交换前,i1={0},i2={1}",i1,i2);
Swap(ref i1, ref i2);//两个参数必须用关键字“ref”传递
Console.WriteLine("交换后,i1={0},i2={1}", i1, i2);
Console.ReadLine();
}
/// <summary>
/// 值传递
/// 在c#中要想使参数按引用传递,需要使用ref关键字来修饰参数
/// </summary>
/// <param name="num1"></param>
/// <param name="num2"></param>
public static void Swap(ref int num1, ref int num2)
{
int temp;//中间变量
temp = num1;
num1 = num2;
num2 = temp;
}
}
输出结果:
利用引用传递参数的方式可以在方法调用之后,仍然保留对参数值得修改。
ref关键字
(1)修饰的参数是按引用传递给调用的方法
(2)方法定义和调用时都必须显示使用
(3)传递到方法中的ref参数必须实现赋初始值
第4章 深入c#的String类
4.1 c#中的String类
4.1.1 常用的字符串处理方法
1. [csharp] view plain copy
2. String str1 = "aaa";
3. String str2 = "aaa";
4. String str3 = "bbbaaaccc aaaFFFaaaggg ";
5.
6. /**
7. * 方法: public bool Equals(string value)
8. * 摘要: 比较一个字符串与另一个字符串value的值是否相等,
9. * 返回结果:若二者相等,则返回true,若不相等,则返回false
10. **/
11. bool flag = str1.Equals(str2);
12. Console.WriteLine("{0}.Equals({1}) = {2}", str1, str2, flag);
13.
14. /**
15. * 方法: public static int Compare(string strA, string strB)
16. * 摘要: 比较两个指定的 System.String 对象,并返回一个整数,指示二者在排序顺序中的相对位置
17. * 返回结果:一个 32 位带符号整数,指示两个比较数之间的词法关系。值条件小于零strA 小于 strB。零strA 等于 strB。大于零strA 大于 strB
18. **/
19. int ci = String.Compare(str3, str1);
20. Console.WriteLine("String.Compare({0}, {1}) = {2}", str3, str1, ci);
21.
22. /**
23. * 方法: public int IndexOf(char value)
24. * 摘要: 获取指定的value字符串在当前字符串中的第一个匹配项的位置。
25. * 返回结果:如果找到了改字符,就返回它的位置(从零开始的索引位置),如果没有找到,则返回-1
26. **/
27. int ii = str3.IndexOf(str1);
28. Console.WriteLine("{0}.IndexOf({1}) = {2}", str3, str1, ii);
29.
30. /**
31. * 方法: public int LastIndexOf(char value)
32. * 摘要: 报告指定字符串在此实例中的最后一个匹配项的索引位置。
33. * 返回结果:如果找到该字符串,则为 value 的从零开始的索引位置;如果未找到该字符串,则为 -1。如果 value 为 System.String.Empty,则返回值为此实例中的最后一个索引位置。
34. **/
35. int li = str3.LastIndexOf(str1);
36. Console.WriteLine("{0}.LastIndexOf({1}) = {2}", str3, str1, li);
37.
38. /**
39. * 方法: public static string Join(string separator, params string[] value)
40. * 摘要: 把字符串数组value中的每个字符串用指定的分隔符separator连接
41. * 返回结果:一个由 value 中的元素组成的字符串,这些元素以 separator 字符串分隔。
42. **/
43. String[] arr = { "三号考试", "都不能走", "考完再走" };
44. String str = String.Join(" - ", arr);
45. Console.WriteLine("String.Join(\" - \",arr) = {0}", str);
46.
47. /**
48. * 方法: public string[] Split(params char[] separator)
49. * 摘要: 用指定的分隔符separator分割字符串
50. * 返回结果:分割后的字符串数组
51. **/
52. String[] arr1 = "雄伟是山的梦,宽阔是海的梦,蔚蓝是天的梦,幸福是百姓梦".Split(',');
53. Console.WriteLine("{0}.Split(',')", str1);
54. foreach (String temp in arr1)
55. {
56. Console.WriteLine(temp);
57. }
58.
59. /**
60. * 方法: public string Substring(int startIndex, int length)
61. * 摘要: 从此实例检索子字符串。 子字符串从指定的字符位置开始且具有指定的长度。
62. * 返回结果:与此实例中在 startIndex 处开头、长度为 length 的子字符串等效的一个字符串,如果 startIndex 等于此实例的长度且 length为零,则为 System.String.Empty。
63. **/
64. Console.WriteLine("{0}.Substring(1, 2)={1}", str3, str3.Substring(1, 4));
65.
66. /**
67. * 方法: public string ToLower()
68. * 摘要: 返回此字符串转换为小写形式的副本
69. * 返回结果:一个小写字符串
70. **/
71. Console.WriteLine("{0}.ToLower() = {1}", str3,str3.ToLower());
72.
73. /**
74. * 方法: public string ToUpper()
75. * 摘要: 返回此字符串转换为大写形式的副本。
76. * 返回结果:当前字符串的大写形式。
77. **/
78. Console.WriteLine("{0}.ToUpper() = {1}", str3,str3.ToUpper());
79.
80. /**
81. * 方法: public string Trim()
82. * 摘要: 去掉字符串前后两段多余的空格
83. * 返回结果:从当前字符串的开头和结尾删除所有空白字符后剩余的字符串。
84. **/
85. Console.WriteLine("{0}.Trim()={1}", str3,str3.Trim());
86. Console.ReadLine();
输出结果:
4.1.4 Format格式化
Format()方法的格式字符串中各种格式化定义字符和示例
[csharp] view plain copy
1. /**
2. * 方法:format
3. * 摘要:将指定字符串中的格式项替换为两个指定对象的字符串表示形式
4. **/
5. String str = String.Format("{0}乘以{1}等于{2},{3}",2,3,2*3,"做的很好");
6. Console.WriteLine(str);
7.
8.
9. // C:货币格式
10. Console.WriteLine(String.Format("C3={0:C3}", 2000));
11. Console.WriteLine(String.Format("C2={0:C2}", 2000));
12.
13. //D十进制格式
14. Console.WriteLine(String.Format("D3={0:D3}", 2));
15. Console.WriteLine(String.Format("D2={0:D2}", 2));
16.
17. //F小数点后的位数固定
18. Console.WriteLine(String.Format("F3={0:F3}", 2000));
19. Console.WriteLine(String.Format("F2={0:F2}", 2000));
20. Console.WriteLine(String.Format("F2={0:F2}", 2000.9999));
21.
22. //N用逗号(,)分割的数字
23. Console.WriteLine(String.Format("N={0:N}", 2500000));
24.
25. //P百分百计数法
26. Console.WriteLine(String.Format("P3={0:P3}", 2000));
27. Console.WriteLine(String.Format("P2={0:P2}", 0.29768));
28.
29. //十六进制格式
30. Console.WriteLine(String.Format("X000={0:X000}", 15));
31.
32. Console.WriteLine(String.Format("X={0:X}", 16));
33.
34. Console.ReadLine();
运行结果:
35. [csharp] view plain copy
36. /**
37. * 方法:{0,-8:F2}
38. * 摘要:以左对齐,宽带是8,保留2位小数的方式输出数值
39. **/
40.
41. Console.WriteLine("{0,-8:F2}=[" + String.Format("{0,-8:F2}", 23) + "]");
42.
43. /**
44. * 方法:{0,8:C2}
45. * 摘要:以右对齐,宽度是8,显示货币符号,保留2位小数的方式输出数值
46. **/
47. Console.WriteLine("{0,8:C2} =[" + String.Format("{0,8:C2}", 23) + "]");
48. Console.WriteLine("{0,-20} =[" + String.Format("{0,-20}", "小明") + "]");
49. Console.WriteLine("{0,20:C2}=[" + String.Format("{0,20:C2}", 1000) + "]");
50. //D十进制格式
51. Console.WriteLine("{0,20:D} =[" + String.Format("{0,20:D}", 1000) + "]");
52. //P百分比计数法
53. Console.WriteLine("{0,20:P} =[" + String.Format("{0,20:P}", 0.295478) + "]");
54. //C货币格式
55. Console.WriteLine("{0,20:C2}=[" + String.Format("{0,20:C2}", 0.295478) + "]");
56.
57.
58. Console.ReadLine();
输出结果:
4.2 类型转换
4.2.1 简单的类型转换
1.隐式类型转换
59. [csharp] view plain copy
60. int ii = 10;
61. float ff = ii;
62. Console.WriteLine(ff);
63. Console.ReadLine();
2.显示类型转换
[csharp] view plain copy
1. double score = 58.5;//原始成绩
2. int bonus = 2;//加分
3. int sum;//总分
4. sum = score + bonus;//计算总分,正确的是:sum = (int)score + bonus;
5. Console.WriteLine(sum);
“计算总分”的时候报错
4.2.2 数值类型与字符串之间的转换
[csharp] view plain copy
int i = int.Parse("111");//字符串转换成整形
float ff = float.Parse("333");//字符串转换成单精度浮点型的
double dd = double.Parse("88.3");//字符串转换成双精度浮点型
String str = i.ToString();//数值类型转换为字符串
Console.ReadLine();
4.2.3使用Convert类进行转换
1. [csharp] view plain copy
2. double myDouble = 85.63;//原始数据
3. int myInt = Convert.ToInt32(myDouble);//转换为整形
4. float myFloat = Convert.ToSingle(myDouble);// 转换为浮点型
5. string str = Convert.ToString(myDouble);//转换为字符串型
内容太多,打不完
所以小师妹给您整理好了,你可以免费领取
领 取 方 法
具 体 步 骤
1.长按下方二维码识别关注或微信关注公众号 ind400(机器人配视觉)
2.进入公众号,点击左下角的键盘图标,到聊天界面
3.就像和朋友聊天一样,输入关键字“c#热身篇”,然后按下发送
4.按照提示进行操作,立即获得《c#热身篇资料》!
5.加微信相互学习 guangguang5061
关注后可免费获取更多精神内容
恭候您的加入
文章来源:网络,如有侵权,联系删除。