c#入门经典笔记第五章
一、如何在类型之间进行隐式和显示转换
1、显式转换<(destinationType)sourceVar>
2、转换时会出现溢出的问题,可以用checked和unchecked关键字,checked(expression),使用unchecked则不会检查。还可以配置应用程序使这种类型的表达式都包含checked关键字。
二、如何创建和使用枚举类型
1、比如”方向“可以有四个变量,这时可以定义一个枚举类型。可以把定义单独放在一个命名空间中。※没有分号
namespace ch05ex02
{
enum<typeName>:<underlyingType> { <value1> = <actualVal1>, <value2> = <actualVal2>, <value2> = <actualVal2> }
}
2、underlyingType定义枚举中值的类型,value1也可以赋枚举型的值。默认从0开始,自动+1。获取枚举中的值用圆点运算符。
3、可以使用Console.ToString()或ToString()可以获取枚举的字符串值(这里表明枚举值本质上还是int型或underlyingType型)
4、将string转换为枚举值时用
(enumerationType)Enum.Prase(typeof(enumerationType),字符串)
三、如何创建和使用结构类型
结构是由几个数据构成的数据结构,这些结构可以有不同的类型。根据这个结构可以定义自己的数据类型。
1、可以把结构和枚举放到一个单独的命名空间中
2、通过圆点运算符进行访问
四、如何创建和使用数组
1、用一下方式声明数组
<baseType>[] <name>;
2、必须在方问之前进行初始化,可以在声明的时候初始化。初始化有两种方式
(1)int[] myIntArray = {1,2,3,4,5,};
(2)int[] myIntArray = new int[5];\\可以理解为给数组变量在预留五个int型的内存位置
(3)还可以是以上两种的组合 int myIntArray = new int[5] {1,2,3,4,5};数组大小必须与元素个数匹配。
(4)个数可以用一个常量指定
2、数组的遍历。可以使用for循环,但存在非法访问的危险。使用foreach循环
foreach((baseType) <name> <array>)
{ \\can use <name> for each elements}
这个循环迭代每个元素,一次把每个元素放在变量<name>中,且不存在非法访问的危险。
与for的区别在于foreach对数组内容进行只读访问。
3、多维数组。在方括号中使用逗号
<baseType> [,,] <name>;
访问多维数组也使用逗号,
<name> [,,];
4、数组的数组
五、如何处理字符串值
1、string类型变量可以看做是char变量的只读数组,可以用下面语法访问每个字符:
string myString = "A string";
char myChar = myString[1];
2、上面的不能为各个字符赋值,可以使用ToCharArray()命令,获得可写的char数组
string mySring = “A string”;
char[] myChar = myString.ToCharArray();
3、可以在foreach循环中使用字符串
foreach (char character in myString)
{
Console.WriiteLine("{0}",character);
}
4、可以使用myString.Length获取元素的个数,(mySting是字符串的名字)
5、<string>.ToLower和<string>.ToUpper命令,应用如下
string userResponse = Console.ReadLine();
if(userResponse.ToLower == "yes")
{// Act on response.}
6、<string>.Trim()命令可以删除字符串中的空格
string userResponse = Console.ReadLine();
userResponse = userResponse.Trim();
if (userResponse.ToLower() == "yes")
{//Act on response.}
使用该命令还可以删除其他字符,需在数组中指定
char[] trimChars = {' ', 'e', 's''}; string userResponse = Console.ReadLine(); userResponse = userResponse.ToLower(); userResponse = userResponse.Trim(trimChars); if (userResponse == "y") { \\Act on response. }
还可以使用<string>.TrimStar()和<string>.TrimEnd()命令,可以把字符串的前面或后面的空格删掉。这些命令也可以指定char数组。
7、<string>.PadLeft()和<stign>.PadRight命令,可以在字符串的左边或右边添加空格,也可以添加一个字符到字符串上。
string myString = “Aligned”;
mystring = myString.PadLeft(10);
其中10是指定总长度的,上面代码将把3个空格加到单词的左边
string myString = “Aligned”;
mystring = myString.PadLeft(10,-);
上面代码将在myString的开头加上3个短横线。
8、<string>.Split()把string转换为string数组。
static void Main(string[] args) { string myString = "This is a test."; char[] separator = {' '}; string[] myWords; myWords = myString.Split(separator); foreach (string word in myWords) { Console.WriteLine("{0}", word); Console.ReadKey(); } }
书上说得到的“”每个单词都没有空格,……在使用split()时,删除了分割符“,但在VS2008中得到的结果还会有空格,不知道是08与10的区别还是我没调试好的原因