欢迎来到天天文库
浏览记录
ID:62033038
大小:29.50 KB
页数:3页
时间:2021-04-15
《C#语言知识点整理-结构.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、结构与类的区别:结构与类共享大多数相同的语法,但结构比类受到的限制更多:1.结构是值类型,而类是引用类型.2.在结构声明中,除非字段被声明为const或static,否则无法初始化。3.结构不能声明默认构造函数(没有参数的构造函数)或析构函数。结构可以声明带参数的构造函数.4.一个结构不能从另一个结构或类继承,而且不能作为一个类的基类.所有结构都直接继承自 System。ValueType,后者继承自System。Object。 5.结构可以实现接口。 6.与类不同,结构的实例化可以不使用new运算符.7.结构在赋值时进行复制。将结构赋值给新变量时,将复制所有数据,并且对
2、新副本所做的任何修改不会更改原始副本的数据.在使用值类型的集合(如Dictionary3、明为const或static //public intx=0;//publicinty =0; //结构不能声明默认构造函数(没有参数的构造函数)或析构函数 //publicCoOrds() //{ //} //结构可以声明带参数的构造函数。 publicCoOrds(intp1,int p2) { x= p1; y=p2; } } classProgram{ static voidMain(string[]args) { // //与类不同,结构的实例化可以不使用new运算符。 // //Declarean 4、object: CoOrdscoords1; //Initialize: coords1。x=10; coords1.y=20; //Displayresults: Console.Write("CoOrds1:”); Console.WriteLine(”x={0},y ={1}",coords1.x,coords1.y); //Initialize: CoOrds coords2= newCoOrds(); CoOrdscoords3= newCoOrds(10, 10); //Displayresult5、s: Console.Write("CoOrds2: "); Console。WriteLine("x={0},y ={1}", coords2.x,coords2.y); Console.Write("CoOrds3:"); Console.WriteLine("x={0},y= {1}”,coords3。x,coords3.y); // //将结构赋值给新变量时,将复制所有数据,并且对新副本所做的任何修改不会更改原始副本的数据。 // //Copy Console。Write("AfterCopy:n”); coords26、=coords3; coords2.x =20; //Displayresults: Console.Write("CoOrds2: ”);Console。WriteLine("x={0}, y={1}”, coords2.x,coords2.y); Console.Write("CoOrds3:"); Console.WriteLine("x= {0}, y ={1}",coords3。x,coords3。y); // Keep the consolewindowopen indebugmode. Console。Wri7、teLine(”Pressanykeytoexit.");Console。ReadKey(); } }}一、参考链接:C#封装c++结构体与互调用:http://developer.51cto。com/art/200908/143782.htm解决C#结构体数组间的转化 http://developer.51cto.com/art/200908/143779。htmC#结构体的序列化与反序列化http://developer.51cto。com/art/200908/144015。htmStruc
3、明为const或static //public intx=0;//publicinty =0; //结构不能声明默认构造函数(没有参数的构造函数)或析构函数 //publicCoOrds() //{ //} //结构可以声明带参数的构造函数。 publicCoOrds(intp1,int p2) { x= p1; y=p2; } } classProgram{ static voidMain(string[]args) { // //与类不同,结构的实例化可以不使用new运算符。 // //Declarean
4、object: CoOrdscoords1; //Initialize: coords1。x=10; coords1.y=20; //Displayresults: Console.Write("CoOrds1:”); Console.WriteLine(”x={0},y ={1}",coords1.x,coords1.y); //Initialize: CoOrds coords2= newCoOrds(); CoOrdscoords3= newCoOrds(10, 10); //Displayresult
5、s: Console.Write("CoOrds2: "); Console。WriteLine("x={0},y ={1}", coords2.x,coords2.y); Console.Write("CoOrds3:"); Console.WriteLine("x={0},y= {1}”,coords3。x,coords3.y); // //将结构赋值给新变量时,将复制所有数据,并且对新副本所做的任何修改不会更改原始副本的数据。 // //Copy Console。Write("AfterCopy:n”); coords2
6、=coords3; coords2.x =20; //Displayresults: Console.Write("CoOrds2: ”);Console。WriteLine("x={0}, y={1}”, coords2.x,coords2.y); Console.Write("CoOrds3:"); Console.WriteLine("x= {0}, y ={1}",coords3。x,coords3。y); // Keep the consolewindowopen indebugmode. Console。Wri
7、teLine(”Pressanykeytoexit.");Console。ReadKey(); } }}一、参考链接:C#封装c++结构体与互调用:http://developer.51cto。com/art/200908/143782.htm解决C#结构体数组间的转化 http://developer.51cto.com/art/200908/143779。htmC#结构体的序列化与反序列化http://developer.51cto。com/art/200908/144015。htmStruc
此文档下载收益归作者所有