C#学习(类库、结构、枚举、枚举间的比较问题)
类库,分两步
(1)
namespace Squareff//使用英文,最终胜出Squareff.dll被引用 { public class SquareWidget { public double SideLength = 0;//声明字段 public double Area//声明属性 { get { return SideLength * SideLength; } } } }
(2)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Squareff;//命名空间引用 namespace 应用其他程序集 { class Program { static void Main(string[] args) { SquareWidget sq = new SquareWidget();//来自类库 sq.SideLength = 5.0;//设置边长 Console.WriteLine(sq.Area );//输出该区域 } } }
结构
namespace 结构 { struct Point { /*类是引用类型,而结构是值类型 结构是隐式密封的,这意味着结构不能被派生*/ public int x; public int y; } class Program { static void Main(string[] args) { Point first, second, third; first.x = 10; first.y = 10; second.x = 10; second.y = 20; third.x = first.x + second.x; third.y = first.y + second.y; Console.WriteLine("first:{0},{2}",first .x,first .y); Console.WriteLine("second:{0},{1}",second .x,second .y); Console.WriteLine("third:{0},{1}",third .x,third.y); } } }
对结构赋值
namespace 对结构赋值 { class CSimple { public int X; public int Y; } struct Simple { public int X; public int Y; } class Program { static void Main(string[] args) { CSimple cs1 = new CSimple(), cs2 = null;//类实例 Simple ss1 = new Simple(), ss2 = new Simple();//结构实例 cs1.X = ss1.X - 5;//带5赋值给ss1.X和cs1.X cs1.Y = ss1.Y - 10;//将10赋值给ss1.Y和cs1.Y; cs2 = cs1;//赋值类实例 ss2 = ss1;//赋值结构实例 } } }
结构中的实例构造函数
namespace 实例构造函数 { struct Simple //结构可以有实例构造函数和静态构造函数, //但不允许有析构函数 { public int x; //public int x=4;编译错误,在结构中字段初始化是不被允许的。 public int y; public Simple(int a, int b)//带有参数的构造函数 { x = a; y = b; } } class Program { static void Main(string[] args) { Simple s1 = new Simple();//调用隐式构造函数 Simple s2 = new Simple(5,10);//调用构造函数 Console.WriteLine("{0},{1}",s1 .x,s1 .y); Console.WriteLine("{0},{1}",s2 .x,s2 .y); } } }
枚举
namespace 枚举 { enum TrafficLight { Green,//用逗号不用分号 Yellow,//用逗号,不用分号 Red//后面没有符号 } /*与结构相同,枚举也是值类型, * 枚举只有一种类型的成员:命名的整数值常量 * 每个枚举成员被赋值一个底层的常量值 * 在默认情况下,第一个成员值为0,并对后面 * 成员赋值的值比前一个成员多1; */ class Program { static void Main(string[] args) { TrafficLight t1 = TrafficLight.Green; TrafficLight t2 = TrafficLight.Yellow; TrafficLight t3 = TrafficLight.Red; Console.WriteLine("{0},t{1}",t1,(int)t1); Console.WriteLine("{0},t{1}",t2,(int)t2); Console.WriteLine("{0},t{1}\n",t3,(int)t3);//(int)t3转换为int } } }
枚举之间的比较问题
namespace 枚举之间的比较 { /*枚举是一个独特的类型 比较不同的枚举类型成员 * 会导致编译错误; */ enum FirstEnum { Mem1, Mem2 } enum SecondEnum { Mem1, Mem2 } class Program { static void Main(string[] args) { if (FirstEnum.Mem1 < FirstEnum.Mem2)//正确,相同的枚举类型 Console.WriteLine("true"); // if (FirstEnum.Mem1 < SecondEnum.Mem1)错误,不同的枚举类型 Console.WriteLine("false"); } } }
浙公网安备 33010602011771号