文档介绍:1、C#的第一个程序:
ConsoleWriteLine("周伶俐你好,欢迎你来到万联传感有限公司,第一天愉快!");
ConsoleReadKey();
ConsoleWriteLine("在这里开始你的一段新的、神秘的人生吧");
ConsoleReadKey();
//不能直接换行,和C一样,需要换行符号
ConsoleWriteLine("在这里,\n你可以用你的双手创造世界!用你的头脑谱写未知!在这里你是主宰!");
ConsoleReadKey();
2、大括号在C#中的运用:
//大括号里面的数字是后面数字的排位数,如“3”表示第四位数字
ConsoleWriteLine("{0},{2},{3}",4,10,166,9);
//大括号在行显示中的作用
ConsoleWriteLine("\t\t\t\t万联传感报道注册系统\n\n\n\n\n请输入你的姓名:");
// C#中的变量定义统一用小写字符,不建议用大写
string s = ConsoleReadLine();
string name;
name = s;
string short_name = ConsoleReadLine();
//ConsoleWriteLine(name);
ConsoleWriteLine("\n\t\t\t{0}你好,欢迎你来到万联传感有限公司",name,short_name);
3、基本的输入输出语句:
//下面是复写机,说什么写什么
string hope = ConsoleReadLine();
ConsoleWriteLine(hope);
//下面是字符串的ccopy
string s = ConsoleReadLine();
string hope = s;
string copy = hope;
ConsoleWriteLine(hope);
ConsoleWriteLine(copy);
字符串拷贝的详细内情:
string类型是引用类型,但设计人员对string类型做了一些“手脚”,让它跟引用类型又有些差别,比如:
string s1 = "a string";
string s2 = s1;
首先你在创建s1字符串的时候,clr会检测托管堆里是否含有“a string”这个字符串,如果没有,就重新创建字符串“a string”,如果有,就直接把s1指向这个字符串,
然后创建s2的时候,把s1赋值给s2,此时,s1和s2指向托管堆的同一块内存(即字符串“a string”),
当你改变s2的时候(比如“b string”),clr并不会直接更改托管堆上的“a string”,而是重新开辟一个内存单元存字符串“b string”,这个机制就叫“copy on write”,其实c++和java都采用这种机制,
net的垃圾回收机制会自动回收那些“无引用/无效”对象,
string类型是一种特殊类型,它本身是引用类型,但它却模拟了值类型,
4、变量类型的转换:
//变量类型不可以随意转换,必须有特定的语句
string s_from_int;
int i = 20;
int b = true;
int b1 = false;
Error 1 Cannot implicitly convert type 'bool' to 'int'
i = ConsoleReadKey(); //错误