VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • c#语法学习之结构struct

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  /*结构体(struct)

  *通常我们会用来封装小型相关变量

  *例如,点的x,y的坐标.

*publicstructPoint
*{
*  publicintX;
*  publicintY;
*}
  * 结构体是一个值类型

  * 结构也可以包含建构函式、常数、栏位、方法、属性、索引子、运算子、事件和巢状型别,

  * 虽然如果需要上述数种成员时,您应该考虑让型别变成类别。

  * 结构可以实作介面,但不能继承自另一个结构。

  * 因为如此,结构成员无法宣告为 protected。

  *

  * 结构有下列属性:

  * 结构为实值型别,而类别则是参考型别。

  * 与类别不同的是,结构不需使用 new 运算子就能执行个体化

  * 结构可以宣告建构函式,但是必须采用参数

  * 结构无法从另一个结构或类别继承而来,且它不能成为类别的基底。所有结构都是从继承自 System.Object 的 System.ValueType 直接继承而来

  * 结构可实作介面

  * 结构可以用来当做可为 Null 的型别,而且可以对其指派 null 值。

  *

  *

  * 结构与类别所使用的语法几乎相同,不过结构的限制比类别多:

  * 结构宣告内不能初始化栏位,除非将其宣告为 const 或 static。

  * 结构不可宣告预设建构函式 (没有参数的建构函式) 或解构函式。

  * 由於编译器会自动建立和终结结构的复本,因此不需要预设建构函式和解构函式。

  * 实际上,编译器会指派其预设值的所有栏位来实作预设建构函式 (请参阅预设值表 (C# 参考))。结构无法继承自类别或其他结构。

  * 结构为实值型别。当您从结构建立物件并指派给变数时,变数就会包含完整的结构值。当复制包含结构的变数时,就会复制所有资料,而新变数所做的任何修改并不会变更旧变数的资料

  * 。由於结构不会使用参考,因此没有识别。您无法区别两个具有相同资料的实值型别执行个体。C# 中的所有实值型别都衍生自 ValueType,该型别则继承自 Object。

  * 实值型别可由编译器在称为 boxing 的处理序中转换成参考型别。如需详细资讯,请参阅 Boxing 和 Unboxing (C# 程式设计手册)。

  *

  *

  */

usingSystem;
publicstructBook
{
  publicintprice;
  publicstringtitle;
  publicstringauthor;
}
classTest
{
  staticvoidMain()
  {
    Bookbk=newBook();
    bk.price=23;
    bk.title="書名";
    bk.author="作者";
    Console.WriteLine(bk.title.ToString()+bk.author.ToString()+bk.price.ToString());
  }
}



相关教程