- 类型转换
1).隐式转换
注意:
隐式转换中不存在向char类型的隐式转换,float和double类型也不能隐式转换为decimal型.
2)强制类型转换
(目标类型) (表达式)
3)其他方式的转换\
①Parse
目标类型.Parse(待转换字符串)
②as
as运算符用以在兼容的引用类型之间执行某些类型的转换。如果要转换的类型与指定的类型兼容,转换就会成功,反之,就会失败as运算符就会返回null而不是引发异常。
③装箱与拆箱
装箱和拆箱能使值类型能够与object类型发生转换
装箱是将值类型转换为引用类型,即分配一个对象实例并将“值类型”的值复制到该实例中。
而拆箱是将引用类型转换为值类型。拆箱操作首先检查对象实例,确保它是给定值类型的一个装箱值,然后将该 值从对象实例复制到值类型变量中。
//自己总结:拆箱和装箱使一个依存的操作只有在装箱的基础上才存在所谓的拆箱。
- 语句
1) 可作为语句的表达式:
使用new运算符的对象分配 A=new object();
各种赋值运算
自增自减运算
2) 方法调用语句
对象名.方法名(参考列表);//调用不同类的实例方法
String s=”hello“’; s=s.ToUpper();
类名.方法名(参考列表);//调用不同类的静态方法 Console.WriteLine(“Hello”);
方法名(参考列表);//调用同一类的方法 Max (a,b);
- 输入输出
C#中并不提供输入输出语句,其输入输出操作是借助于一些预定义类来实现的。
Console类提供用于从控制台读取单个字符或整行的方法,并且该类还可将值类型的数据,字符数组以及对象集自动转换为格式化或未格式化的字符串,然后将该字符串写入控制台。
使用Console类需要在源程序开头使用using指令进行命名空间system的引入如果没有引入该命名空间则需要在程序设计的时候使用Console的完全限定名,应把Console替换为System。Console
1) 输入方法
① Read Read方法从标准输入流读取下一个字符。其返回是输入流种下一个字符的Unicode编码值,返回值类型是System.Int32;如果当前没有更多的字符可供读取则返回1.定义的方法: public static int Read();
注意: Read方法只有在同时ctrl+Z,发出到达文件的结尾的时候;按发出文件结尾条件的等效按键例如windows中的F6;将输入流重定向到具有实际的文件尾字符的源,例如文本文件。
② ReadLine 从标准的输入流中读取下一行的字符,其返回值类型为System.String;如果没有更多的可用行,则返回null方法定义如下:public statid string ReadLine();如果在该方法读取输入的时候按curl+z则返回的为null
③ ReadKey
ReadKey方法获取用户的下一个字符或者功能键。返回值类型为:System.ConcoleKeyInfo,描述Consolekey常数和对应于按下控制台键的Unicode字符(如果存在这样的字符)
ConsoleKeyInfo对象还以ConsoleModifiers值得安位组合描述按在控制台键的同时按下shift,Alt,Ctrl键中的一个。
两种重载方法如下:public static consoleJKeyInfo ReradKey();
Public static ConsoleKeyInfo ReadKey(bool intercept);
2) 输出方法
① Writer 输出后并没有自动换行
② WriterLine 输出后自动换行
WriteLine(输出项);
WriterLine(格式控制,输出列表);Console.WriterLine(“{0:X}”,d); //将d按16进制输出后回车
WriterLine(); //输出空行
4.格式字符串
格式项:
{索引 [,对齐] [:格式字符串] }
① 索引 ,即强制“索引”组件(也叫作参数说明符)是一个从0开始的数字,可表示对象列表中对应的第多少项;通过指定同样的参数说明符,多个格式项可以指定对象列表中的同一个元素//自己的话说就是方便为同一个参数项设置不同的格式类型而已。
例如 {0:X}{0:E}{0:N}的复合格式字符串,可以将第一个列表项的数值设置为16进制,科学计数法和数字格式进行输出
② 对齐 正数为右对齐反之
③ 如果指定格式说明符则需要使用冒号:
5.当四个数字相比较的时候怎样使if 的嵌套相对比较少的选择如下:
中心思想就是两个两个的相互比较,从中选择出相对应的关系出来
代码: int a, b, c, d,t;
a = Convert.ToInt32(Console.ReadLine()); //这样的话每次的输入都要以回车键结束
b = Convert.ToInt32(Console.ReadLine());
c = Convert.ToInt32(Console.ReadLine());
d = Convert.ToInt32(Console.ReadLine());
if (a > b) { t = a; a = b; b = t; }
if (a > c) { t = a; a = b; b = t; }
if (a > d) { t= a; a = d; d = t;}
if (b > c) { t = b ; b = c; c = t;}
if (b > d) { t = b; b = d; d = t; }
if (c > d) { t = c ; c = d; d = t;}
Console .WriteLine ("{0},{1} ,{2},{3}",a, b, c, d);
6.兔子繁殖问题
题目:有一对兔子,从出生后第三个月起每月生一对兔子,小兔子长到第三个月又生一对兔子,假如兔子都不会死亡,那么将会在第几个月的时候兔子的数量达到100对??
::兔子的数量规律的数列:1,1,2,3,5,8,。。。。,即从第三个月开始兔子的数量为前每两个月的兔子之和,是著名的斐波那契数列。
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int i, f1 = 1, f2 = 1,fn;
for (i = 3; ; i++)
{
fn = f1 + f2;
if (fn >= 100)
{
Console.WriteLine("第{0}个月兔子的数量达到ì了100对?", i);
break;
}
f1 = f2;
f2 = fn;
}
Console.ReadLine();
}
}
}