C#如何定义结构体及访问结构体的成员

来源:互联网 发布:js 获取div的属性 编辑:程序博客网 时间:2024/06/01 07:42
构结构的关键字 struct,struct类型是一种值类型通常用来封装小型变量组,如果冲结构创建一个对象并将对象赋给某个变量 则变量包含结构该变量放入结构的全部值,如果复制包含变量的结构,则将该复制所有的值,对新副本所作的任何修改都不会改变就副本的值(值类型的复制,自复制给其他的值,改变原来结构的值)
结构的特点:结构不是引用类型,而是值类型。结构的实例化不能用new运算符。结构可以声明构造函数但是必须带参数的结构。结构不能从另外一个结构或类来继承,而且不能作为一个类的基类。结构可以作为null的类型,因而可向其符null值。
结构的声明
Struct Mystr
{

}
结构的访问修饰符可以是public,internal,默认修饰符为internal。
结构中的成员访问修饰符可以是private,public但不可以是protect(结构体不能别继承,只能连接接口),调用结果只能是public才能调用
结构化实例两种方式
Struct Mystr
{
Public int i;
}
在Main方法中调用
{
Mystr ms=new Mystr;
ms.i=10;

Mystr mt;
mt.i=100;
}
struct Person
{
public int Age
{
get; set;
}
public string Name
{
get; set;
}
public bool Sex
{
get;set;
}
public void Eat(string name)
{
Console.WriteLine("今天吃的{0}", name);
}
}
在Main方法中调用

Person p = new Person();//调用结构的中字段
p.Name = "老桂";
p.Age = 12;
p.Eat("面");
p.Sex = true;

Console.WriteLine(p.Name);
Console.WriteLine(p.Age);
Console.WriteLine(p.Sex);
Console.WriteLine(I);
结果为 :Name=老桂,Age=12,今天吃的面,Sex=true,
从另外一个结构复制结构中的字段并且重新Name字段赋值
Person ap = p;
ap.Name = "小鬼";
Console.WriteLine(ap.Sex);
Console.WriteLine(ap.Name);
Console.WriteLine(ap.Age);
ap.Eat("fanaaaaaf");
结果为:Name=小鬼,Sex=true,Age=12,今天吃的fanaaaaaf

字段:
普通字段:如果有构造函数,必需在构造函数中初始化,如果没有构造函数,字段则自动初始化。
静态字段:常量字段不需要在构造函数中初始化。
结构中,静态字段和常量必需用结构名来调用。
(属性也是变量)
例:
struct Person
{
public const string str = "100aaaaaaaaa";
public static int Age
{
get; set;
}
}
Console.WriteLine(Person .Age );
Console.WriteLine(Person .str );
0 0
原创粉丝点击