C#基础知识学习笔记
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
3-常量声明:const关键字 const PI=3.14; //使用const声明常量后不能在程序中再对值进行修改 int a=1,b=2,c=3;Console.WriteLine("a={0},b={1},c={2}",a,b,c) 5-算数运算符 取整(/):小除大为0,大除小取整数值-->字符串:.ToString() int a = 100; string b=a.ToString(); Console.WriteLine(b); 字符串-->值:.Parse string a = "200"; int b=int.Parse(a); Console.WriteLine(b); int [] arr={1,2,3,4};
//输入数组长度,并为每个索引赋值,赋值完成后输出每个索引的值 Console.WriteLine("请输入数组的长度:"); int length=int.Parse(Console.ReadLine()); int[] arr3 = new int[length]; //定义数组 for (int j = 0; j < arr3.Length; j++){ Console.WriteLine("请输入第{0}个数值",j+1); arr3[j]=int.Parse(Console.ReadLine()); //为每个位置赋值 } Console.WriteLine("打印数组内容为:"); for (int j = 0; j < length; j++){ Console.WriteLine("第{0}个的值为:", arr3[j]); Console.WriteLine(arr3[j]); //输出 } //二维数组的遍历int[,] arr=new int[2,3]{ {1,2},{2,3},{3,4} }; for(i=0;i<arr.GetLength(0);i++)//循环行。GetLength(0)获取行数 { for(j=0;j<arr.GetLength(1);j++)//循环列。GetLength(1)获取列数 { Console.Write(arr[i,j]); } } 修饰符:static静态的,private私有的,public公有的 static void HelloWorld() { Console.WriteLine("hello world"); } static void Sum(int a,int b) { int Sum=a+b; Console.WriteLine(Sum); } static int Sum2(int a,int b) //int为返回值类型 { int Sum2=a+b; Console.WriteLine(Sum2); return Sum2; //使用return返回结果 } Motor mortor=new Mortor(); //实例化枚举 motor=Motor.启动; Console.WriteLine(motor); //以内容的形式显示 Console.WriteLine((int)motor); //以数值的形式显示 struct Motor { public string Start; public string Stop; } Morot motor=new Motor(); //实例化结构体 motor.Start="电机启动"; motor.Stop="电机停止"; Console.WriteLine("motor.Start"); //与西门子的博图软件中建立的结构体变量很类似。 internal class Motor //新建Motor类文件 { public string Start; //定义全局变量 public string Stop; public void Dianji() //定义全局函数 { Console.WriteLine("电机状态有:{0}、{1}",this.Start,this.Stop); } } Motor motor = new Motor(); //实例化类 motor.Start = "启动"; //引用类中的元素 motor.Stop = "停止"; motor.Dianji(); internal class Motor { //在类型前面加static public static string Start; //static静态成员 public static string End; public static void Qidong() { Console.WriteLine("启动"); } } //静态成员调用 ,不需要实例化对象 //实例成员会单独占用一个内存 //静态成员共享一个内存 Motor.Start = "开始启动"; Motor.End = "开始停止"; Motor.Qidong(); 在类中声明两个名称相同的方法,调用时即可选择性的传递自己需要的方法中的参数。 internal class Employee { //使用三斜杠解释代码块的具体含义 /// <summary> /// 计算A类工资 /// </summary> /// <param name="baseSa">基本工资</param> /// <param name="workYear">工作年限</param> /// <param name="yearSa">工资年龄</param> /// <returns>总工资</returns> //将两个方法的名称设置一致,返回值也要一致,才能构成重载 public double Salary(double baseSa,int workYear,double yearSa) { double sum = baseSa + workYear * yearSa; return sum; } /// <summary> /// 计算B类工资 /// </summary> /// <param name="baseSa">基本工资</param> /// <param name="workYear">工作年限</param> /// <param name="yearSa">工资年龄</param> /// <param name="ProSa">项目资金</param> /// <returns>总工资</returns> public double Salary(double baseSa, int workYear, double yearSa,double ProSa) { double sum = baseSa + workYear * yearSa+ProSa*0.1; return sum; } } Employee emp = new Employee(); //实例化类 double Salary1 = emp.Salary(10, 10, 10); //调用方法1 double Salary2 = emp.Salary(10, 10, 10, 1000); //调用方法2 Console.WriteLine(Salary1);Console.WriteLine(Salary2); 17-get set访问器(将属性私有化,通过公有化的方式进行操作) get{}访问器:设置对象可读,用于获取字段的值,需要使用return返回字段的值。 set{}访问器:设置对象可写,用于设定字段的值,需要使用一个特殊的值,这个值就是在面向对象设计中,对字段设置的值。 public 数据类型 属性名 { get { 获取属性的语句块; return 值; } set { 设置属性得到语句块; } } 在新建类中对属性进行定义时,使用Public则外部程序可以随意对类中的属性进行修改,使用private则外部程序又无法访问,此时可以对private定义的属性通过get,set访问器来进行访问。 private string status; public string Status //通过Status访问status { //通过共有的Status对私有的status进行读写操作 //外部程序中调用Status,对Status的写操作经由set赋值给status。 get { return status; } //设置属性可读 set //设置属性可写,value为外部传给过来的值。经过Status传给status { //当外部程序输入的内容不是"正转"、"反转"的话显示输入错误 if (value.Equals("正转")||value.Equals("反转")) { status = value; //关键字、将外部输入的内容赋值给value然后由value写给status } else status = "输入错误"; } } static void Main(string[] args) { Motor motor=new Motor(); motor.Num = 1; motor.Status = "正转"; motor.MoStatus(); } 访问流程-执行 motor.Status = "正转";调用Status中的set访问器,将"正转"传给value,再经value传给private中的ststus 18-构造函数 特点---名字必须与定义它的类名完全相同,并且没有返回类型; internal class Motor { public string EquName { get; set; } public string EquStatus { get; set; } //构造一个与类名相同的函数,参数类型与类中的参数一致,并将参数进行传递 public Motor(string equName,string equstatus)//名称与类名相同,实例化的同时赋值 { EquName = equName; EquStatus = equstatus; } public Motor() //先实例化再赋值,即创建一个构造函数的重载 { } public void MStatus() { Console.WriteLine("{0}电机{1}",EquName,EquStatus); } }
19-继承 类与类之间可以形成继承的关系,即父类与子类之间的关系。 格式:子类:父类 实例化子类可以引用父类中的声明 建立子类SaleMan internal class SaleMan:Employee //表示Employee这个类是SaleMan这个类的父类 { public string WorkYear { get; set; } } 建立父类Employee internal class Employee //父类中的元素在子类中均可用 { public string Num { get; set; } public string Name { get; set; } public string Sex { get; set; } } 调用类 SaleMan Sale=new SaleMan();Sale.Name = "ABCD"; //Name本为Employee中的元素,由于Employee为SaleMan的父类,故SaleMan实例化后有父类的属性 public Motor(string equName, string equStatus)//构造函数 { EquName = equName; EquStatus = equStatus; } public string EquName { get; set; } public string EquStatus { get; set; }
public Motor(string equNo, string equName, string equStatus) { //根据equNo对集合进行操作 EquNo = equNo; EquName = equName; EquStatus = equStatus; } public string EquNo{ get; set; } public string EquName { get; set; } public string EquStatus { get; set; } Motor M11 = new Motor("001", "走行1", "正转");//实例化类并赋值 Motor M12 = new Motor("002", "走行2", "反转"); Motor M13 = new Motor("003", "升降1", "正转"); Motor M14 = new Motor("004", "升降2", "反转"); Hashtable hslist = new Hashtable(); //声明集合并实例化 hslist.Add(M11.EquNo, M11); //M11.EquNo为唯一的键值对, hslist.Add(M12.EquNo, M12); hslist.Add(M13.EquNo, M13);//要添加元素的键和元素的值 //获取某个元素 Console.WriteLine("编号为001的设备:" + ((Motor)hslist["001"]).EquName); Console.WriteLine("编号为002的设备:" + ((Motor)hslist["002"]).EquStatus); Console.WriteLine("编号为001的设备:" + ((Motor)hslist[M14.EquNo]).EquName);//获取M14对应编号的设备名 Console.WriteLine(); //循环遍历(遍历键、遍历值) Console.WriteLine("遍历键-----------------------"); foreach (string item in hslist.Keys)//键的类型全部为字符串类型 { Console.WriteLine(item+" "); } Console.WriteLine(); Console.WriteLine("遍历值----------------------------"); foreach (Motor item in hslist.Values) //将键值对的值进行组合 { Console.WriteLine("设备号:{0},设备名:{1},设备状态:{2}", item.EquNo, item.EquName, item.EquStatus); } Console.WriteLine(); //删除,通过键值对删除 hslist.Remove("001"); //添加元素 hslist.Add(M14.EquNo,M14); foreach (Motor item in hslist.Values) //将键值对的值进行组合 { Console.WriteLine("设备号:{0},设备名:{1},设备状态:{2}", item.EquNo, item.EquName, item.EquStatus); } //清除 hslist.Clear(); public Travel(string trNo,string trName) //构造函数,在声明时赋值 { TRNo = trNo; TRName = trName; } public string TRNo; public string TRName; Travel TR1 = new Travel("001", "走行1"); Travel TR2 = new Travel("002", "走行2"); List<Travel> list=new List<Travel>(); //list里面只能添加Travel类中的元素 //添加 list.Add(TR1); list.Add(TR2); //获取元素个数 Console.WriteLine("共有"+list.Count+"个元素"); //获取指定的元素 Console.WriteLine("第2个元素:" + ((Travel)list[1]).TRName); //插入 Travel TR3 = new Travel("003", "走行3"); list.insert(0, TR3);//将TR3插入到索引0的位置 //删除 list.Remove(TR2); list.RemoveAt(0); //遍历 foreach (Travel item in list) { Console.WriteLine("遍历设备编号:{0},设备名称{1}", item.TRNo, item.TRName); } //清除 list.Clear(); public Travel(string trNo,string trName) //构造函数,在声明时赋值 { TRNo = trNo; TRName = trName; } public string TRNo; public string TRName; Travel TR1 = new Travel("001", "走行1"); Travel TR2 = new Travel("002", "走行2"); //<>中是键值对的类型,值 Dictionary<string, Travel> dict = new Dictionary<string, Travel>(); //指定键和值的类型 //添加 dict.Add(TR1.TRNo, TR1); dict.Add(TR2.TRNo, TR2); //获取元素个数 Console.WriteLine("共有:"+dict.Count +"个元素"); //删除,通过键值对删除 dict.Remove("001"); //遍历键值对 foreach (string item in dict.Keys) { Console.WriteLine(item); } //遍历值 foreach (Travel item in dict.Values) { Console.WriteLine("设备编号:{0},设备名称{1}", item.TRNo, item.TRName); } //清除 dict.Clear(); 该文章在 2023/5/15 22:24:30 编辑过 |
关键字查询
相关文章
正在查询... |