参考教材:《C# 程序设计及应用教程(第4版)》 马骏主编
第01章 概述
格式化输出
int x = 10, y = 20, z = 30;
Console.WriteLine("{0}+{1}+{2}={3}", x, y, z, x + y + z);
//输出10+20+30=60
int a = 123;
Console.WriteLine("{0:D6}", a);
Console.WriteLine("{0:F4}", a);
//000123
//123.0000
Console.WriteLine("{0,7}", a);
// 123
Console.WriteLine("{0,-7}", a);
//123 |
Console.WriteLine("{0:d}", a);
Console.WriteLine("{0,7:F}", a);
//利用string.Format方法格式化字符串
string s1 = string.Format("{0:d6}", a); //结果:000123
//利用“$”字符串表示法得到格式化后的字符串
string s2 = $"{a:d6} ";//结果:000123
Console.WriteLine("s1=" + s1 + ",s2=" + s2);
//利用ToString方法格式化字符串
string s3 = a.ToString();
Console.WriteLine(s3);
第02章 控制台和WPF入门
WPF 中 TextBlock 和 TextBox 区别
相同点:
用来显示文本内容;
可以设置特定的高度和宽度或者设置为随文字大小自动更改高度宽度;
都可以设置字体的大小、类型、样式以及位置(左对齐,居中,右对齐);
都可以设置不透明度。
不同点:
TextBlock:
更多的用来显示排版内容;
此时直接Text=""就好
可以包括不同字体、颜色和大小的文本;
线高也可以从默认设置增加,以在每行文本之间提供更多空间;
用户无法选择 TextBlock 中的文本。
TextBox:
更多用来输入文本,或者用户需要选择;
此时直接不要写Text
字体只能设置为一种颜色,一种大小,一种类型等;
可以设置为固定的高度和宽度,但也可以打开滚动条以允许盛放更多内容。
第03章 基本数据类型和流程控制语句
int a = 100, b, c = 200, d; //a、c赋初值,b未赋初值
字符串
//字符串比较
string s1 = "This is a string.";
string s2 = s1;
string s3 = new string('a', 4);
Console.WriteLine(string.Compare(s1, s2));//0
Console.WriteLine(string.Compare(s1, s3));//1
Console.WriteLine(string.Compare(s3, s1));//-1
//字符串查找
string s = "1123abc123abc123";
string s4 = "bc1";
if (s.Contains("abc"))
{
Console.WriteLine("s中包含abc");
}
//都会返回第一次找到的位置
bool t = s1.StartsWith("abc");
int n = s.IndexOf(s4);//存在就返回从0开始的位置,不存在返回-1
char[] c2 = { 'a', 'b', '5', '8'};
int x = s.IndexOfAny(c2);
//获取
string myString = "some text";
char myChar = myString[2]; //结果为m
string s5 = "abc123";
string s6 = s5.Substring(2); //结果为"c123"
string s7 = s5.Substring(2, 3); //结果为"c12"
string ss = "abcdabcd";
//插入
string ssl = ss.Insert(2,"12");//结果为"ab12cdabcd"
//删除
string ss2 = ss.Remove(2);//结果为"ab"
string ss3 = ss.Remove(2, 1);//结果为"abdabcd"
//替换
string ss4 = ss.Replace('b', 'h');//结果为"ahcdahcd"
string ss5=ss.Replace("ab", ""); //结果为"cdcd"
//移除首位字符
s1 = " a bcd e ";
s1.TrimStart();//结果为“a□bcd□□e□□□”
s1.TrimEnd();//结果为“□□a□bcd□□e”
s1.Trim();// 结果为“a□bcd□□e”
s2 = "abcd3333";
s3 = s2.Trim('3'); //结果为“abcd”
//大小写
s1 = "This is a string";
s2 = s1.ToUpper(); //s2结果为THIS IS A STRING
s3 = Console.ReadLine();
if (s3.ToLower() == "yes")
{
Console.WriteLine("OK");
}
数组
//定义
int[] a1 = new int[10];
int[,] b1 = new int[3, 5];
string[] a2 = { "first", "second", "third" };
string[] a3 = new string[] { "first", "second", "third" };
string[] a4;
a4 = new string[] { "first", "second", "third" };
int[,] n1 = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
int[,] n2 = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
int[,] n3 = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
//交错数组的特点:每个元素自身又是一个数组。
int[][] n5 = new int[2][]
{
new int[ ] {2,4,6},
new int[ ] {1,3,5,7,9}
};
//转换
string[] sArrayl = { "123", "456", "abc" };
string sl = string.Join(",", sArrayl); //结果为"123,456,abc"
string[] sArray2= sl.Split(',');//sArray2得到的结果与 sArray1相同
string s2 ="abc 12;34,56";
string[] sArray3 = s2.Split(',',';',' '); //分隔符为逗号、分号、空格
Console.WriteLine(string.Join(Environment.NewLine,sArray3));
//复制与排序
int[] a = { 1, 2, 3, 4 };
int[] b = new int[a.Length];//将数组 a 的值全部复制到数组 b 中
Array.Copy(a, b, a.Length);//反转数组 a 的值,结果仍保存到 a 中TAArray.Reverse(a);
var s = $"原始整数数组:{string.Join(",",a)}\n";
//反转数组a的值,结果仍保存到a中
Array.Reverse(a);
s += $"反转后的值:{string.Join(",",a)}\n";
//将数组 b升序排序,排序结果仍保存到 b中
Array.Sort(b);
s += $"升序排序后的值:{string.Join(",",b)}\n";
//反转排序后的值,得到降序结果仍保存到 b中
Array.Reverse(b);
s += $"降序排序后的值:{string.Join(",",b)}\n";
数据类型间的转换
重点
//显式转换
//需要明确地指定转换的类型,所有隐式转换都可以采用显式转换表示
long k = 5000;
int i = (int)k;
/*
Class1 c1 = new Class1();
Class2 c2 = new Class2();
c2 = c1; //隐式转换
c1 = (Class1)c2; //显式转换
//如果转换成功,则返回转换后的类型;如果转换失败,则返回null。
var c3 = c2 as Class1;
var c4 = c1 as Class2;
//is运算符判断两个类型的兼容性,如果兼容返回true,否则返回false。例如:
Class1 c1 = new Class1();
Class2 c2 = new Class2();
bool b1 = c1 is Class1; //true
bool b2 = c2 is Class1; //false
*/
string str = Console.ReadLine();//12,34
string[] strArr = str.Split(','); //拆分操作
int x = int.Parse(strArr[0]); //类型转换
int y = int.Parse(strArr[1]);
int z = x + y;
Console.WriteLine("整数和是:" + z);
Console.WriteLine("请输入整数x");
string xstr = Console.ReadLine(); //"12"
int x2;
int n2 = 12;
string s2 = n2.ToString();
bool bx = int.TryParse(xstr, out x2); //12
if (bx == false)
{
Console.WriteLine("x的输入有误!");
return;
}