结构_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 结构

结构

 2017/9/26 15:43:03  吹不散的风  程序员俱乐部  我要评论(0)
  • 摘要:参考:http://www.cnblogs.com/kissdodog/archive/2013/05/11/3072832.htmlnamespace结构{//结构是值类型,在栈中分配空间;栈中保存的只是引用。直接包含它自己的数据,每个结构都保存自己的一份数据,修改每一个结构的数据都不会对其他结构的数据造成影响。//类是引用类型,在堆中分配空间;两个对象指向的是同一个地址(堆空间),修改的值会影响原来的值。//栈:由编译器自动分配,释放。在函数体定义的变量通常在栈中//堆
  • 标签:

参考:http://www.cnblogs.com/kissdodog/archive/2013/05/11/3072832.html

namespace 结构
{
//结构是值类型,在栈中分配空间;栈中保存的只是引用。直接包含它自己的数据,每个结构都保存自己的一份数据,修改每一个结构的数据都不会对其他结构的数据造成影响。
//类是引用类型,在堆中分配空间;两个对象指向的是同一个地址(堆空间),修改的值会影响原来的值。

//栈:由编译器自动分配,释放。在函数体定义的变量通常在栈中

//堆:一般由程序员分配释放,用New,Melloc分配得到的就是在堆上
public struct Person
{
public string _name;//字段 一定要注意细节就是前面的下划线,用于与变量的区别
public int _age;
public Gender _Gender;
}

public enum Gender
{
男,女
}
class Program
{
static void Main(string[] args)
{
//由于结构不是引用类型,因此结构类型的变量不能被赋予null值。
Person Person;
Person._name = "张三";
Person._age = 18;
Person._Gender = Gender.男;
Person P;
P._name = "大黄";
P._age = 12;
P._Gender = Gender.女;
Console.WriteLine("我叫{0}, 我今年 {1}岁了,我是{2}孩子", Person._name,Person._age,Person._Gender);
Console.WriteLine("我叫{0}, 我今年 {1}岁了,我是{2}孩子", P._name,P._age,P._Gender);
Console.ReadKey();

#region 例子

//PersonStruct p1, p2; //与类一样,但可以不new
//p1.Name = "张飞";
//p1.MobilePhone = "13553663108";
//p1.Birthday = DateTime.Now.AddYears(-10);

//p2 = p1; //将p1的值赋给p2 //由于是值类型,因此赋值等于将全部值全部复制到p2的栈空间
//p2.Name = "关羽"; //然后修改p2的值看是否会影响p1
//Console.WriteLine(p1.Name); //输出 张飞 没影响

//PersonClass p3 = new PersonClass();
//p3.Name = "张飞";
//p3.MobilePhone = "13553663108";
//p3.Birthday = DateTime.Now.AddYears(-10);

//PersonClass p4 = new PersonClass();
//p4 = p3; //将p3的值赋给p4 赋值后,由于是引用类型,因此两个对象指向的是同一个地址(堆空间)
//p4.Name = "关羽"; //然后修改p4的值看是否会影响p3
//Console.WriteLine(p3.Name); //输出 关羽 有影响

//Console.ReadKey();
#endregion

 

 


}
}
}

  • 相关文章
发表评论
用户名: 匿名