C#的初级知识小结2
今天是阴天,天气还算好,今天的课上的也还算好,好多的内容,挺杂的。现在来做个总结吧。
今天的开始讲了控制台成员,比较重要的几个也就是经常用的那些。其中,Console.ReadLine()返回的是ASCII值。Beep是返回一个蜂鸣声,我们还用这个做了个弹钢琴的小程序。这些控制台成员非常的多,所以只靠死记硬背是不行的,要多多的用它,用熟了自然就会了。
C#的数据类型有三种:内置数据类型,自定义数据类型 和 匿名类型。内置的有很多种,像int、char等;自定义的就是类或接口类型了(class interface);最后,匿名类是由一组封装在无名称引用类型中的公共属性组成。
常量和变量,这个就不用多说了吧,有一点,Readonly 定以的常量是可以在构造函数里再次的赋值的。
C#所约定的有多种命名规则,这也就是长久以来形成的一种行为规范吧,虽然不是绝对的,但如果很好的遵循了C#所约定的命名规则了会使你的代码可读性大大的提高,别人也就会乐于阅读你的程序代码了。C#的命名规则大体上可以分为三种:匈牙利命名法,驼峰命名法 和 帕斯卡命名法。 这里只说一种最长用的吧,帕斯卡命名法:它要求在命名的时候将首字母大写,例如:
public void DisplayInfo();
string UserName;
遵循命名规范 会让你养成良好的编程习惯,是值得大家注意的。
下面就是今天的重点了,数据类型,和数据类型的转换。
C#包含多种数据类型,但值类型,引用类型是比较重要的。值类型封装的数据被分配在线程堆栈中,表示实际数据,内存中存放的是值;而引用类型的数据存放在托管堆中,表示指向数据的引用,内存中存放的是对象的地址。简单类型、枚举类型、结构类型都是值类型;string、类、接口、委托、数组都是引用类型。
数据类型的应用很多,不是说说就行的,最总要的还是要会用。
隐式类型var,它的本地变量是强类型变量,由编译器确定类型。如:var i=10;则系统默认i的类型为整形。
匿名类型var myCar = {Color="Black",Make="China",Name="Puma",Price=5000000);它没有具体的类型可以用,所有的匿名类型都继承自System.Object。
dynamic类型是一种静态类型,在编译时,将假定类型化为 dynamic 的元素支持任何操作。
再一个比较重要的就是装箱与拆箱了,装箱是把值类型转化为Object类型或到此值类型所实现的任何接口类型的隐式转换;拆箱是把Object类型转化为值类型或从接口类型到实现该接口的值类型的显式转换。附一张图来解释一下:
如: int i=123;
object o=1; 则其可用下图来解释
又如: int i=123;
objece o=i;
int j=(int)o; 可用下图来解释:
最后,我们做了一个小系统,银行的系统,可以实现存取转账等功能的,附代码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace day02._03lianxi
- {
- class Program
- {
- static double money = 2000.00;
- static void Main(string[] args)
- {
- Console.ForegroundColor = ConsoleColor.White;
- Console.Title = "光大银行";
- Console.WriteLine("欢迎使用光大银行办理业务:");
- //定义用到的字段
- string temun = "";
- string tempw = "";
- //提示输入账号
- Console.WriteLine("请输入账号:");
- temun = Console.ReadLine();
- //提示输入密码
- Console.WriteLine("请输入密码:");
- for (int i = 0; i < 2; i++)
- {
- ConsoleKeyInfo cki = Console.ReadKey(true);
- tempw += cki.KeyChar;
- Console.Write("*");
- }
- Console.WriteLine();
- //判断账号密码跟所设定的是否匹配
- if (temun == "aa" && tempw == "dd")
- {
- Menu();
- }
- else
- {
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("账号或密码错误,请重新输入!");
- Console.ForegroundColor = ConsoleColor.White;
- }
- }
- //选择菜单
- static void Menu()
- {
- //循环,使操作可以不间断
- while (true)
- {
- //double money = 2000.00;
- //清屏,清除屏幕上所保留的账号跟密码,比较安全
- Console.Clear();
- Console.WriteLine("登陆成功!");
- //编辑的菜单
- Console.WriteLine("请输入业务编号以选择所要办理的业务:");
- Console.WriteLine("1、查询余额 2、存款 3、转账 4、取款 5、退出");
- //switch循环,使反复选择菜单操作
- switch (Console.ReadLine())
- {
- case "1":
- Query();
- break;
- case "2":
- InMoney();
- break;
- case "3":
- OtherMoney();
- break;
- case "4":
- OutMoney();
- break;
- case "5":
- return;
- default:
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("非法操作!");
- Console.WriteLine("继续请按任意键!");
- Console.ForegroundColor = ConsoleColor.White;
- Console.ReadLine();
- break;
- }
- }
- }
- //查询余额
- static void Query()
- {
- Console.WriteLine("你账户上的余额为:{0}Reb", money);
- Console.ForegroundColor = ConsoleColor.Green;
- Console.WriteLine("继续请按任意键!");
- Console.ForegroundColor = ConsoleColor.White;
- Console.ReadLine();
- }
- //存款 自定义方法
- static void InMoney()
- {
- double moneyin = 0;
- Console.Write("请输入您要存入的金额:");
- moneyin = double.Parse(Console.ReadLine());
- money += moneyin;
- Console.WriteLine("您本次存入了:{0}元钱 您的账户余额为:{1}元钱", moneyin, money);
- Console.ForegroundColor = ConsoleColor.Green;
- Console.WriteLine("继续请按任意键!");
- Console.ForegroundColor = ConsoleColor.White;
- Console.ReadLine();
- }
- //转账 自定义方法
- static void OtherMoney()
- {
- string ottemun = "";
- Console.WriteLine("请输入您要转出的账号:");
- ottemun = Console.ReadLine().ToString();
- double otmoney = 0;
- Console.WriteLine("请输入您要转出的金额:");
- otmoney = double.Parse(Console.ReadLine());
- if (otmoney <= money)
- {
- money -= otmoney;
- Console.WriteLine("您本次转走了:{0}元钱 您的账户余额为:{1}元钱", otmoney, money);
- Console.ForegroundColor = ConsoleColor.Green;
- Console.WriteLine("继续请按任意键!");
- Console.ForegroundColor = ConsoleColor.White;
- Console.ReadLine();
- }
- else
- {
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("对不起,您账户上的余额不足以您转账,操作无法进行!");
- Console.WriteLine("继续请按任意键!");
- Console.ForegroundColor = ConsoleColor.White;
- Console.ReadLine();
- }
- }
- //取款 自定义方法
- static void OutMoney()
- {
- double moneyout = 0;
- Console.Write("请输入您要取出的金额:");
- moneyout = double.Parse(Console.ReadLine());
- if (moneyout <= money)
- {
- money -= moneyout;
- Console.WriteLine("您本次取出了:{0}元钱 您的账户余额为:{1}元钱", moneyout, money);
- Console.ForegroundColor = ConsoleColor.Green;
- Console.WriteLine("继续请按任意键!");
- Console.ForegroundColor = ConsoleColor.White;
- Console.ReadLine();
- }
- else
- {
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("对不起,您账户上的余额不足,操作无法进行!");
- Console.WriteLine("继续请按任意键!");
- Console.ForegroundColor = ConsoleColor.White;
- Console.ReadLine();
- }
- }
- }
- }
以上就是今天的内容了,总结的多有不尽如人意的地方,以后我还要更努力的学习,向我的目标前进。