结构
2018-06-22 07:52:16来源:未知 阅读 ()
参考: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
}
}
}
==================================
结构的构造函数要传参
namespace 结构Test
{
class Program
{
static void Main(string[] args)
{
Person p;
p.Age = 12;
p.Name = "李四";
Console.WriteLine("姓名{0} 年龄:{1}",p.Name,p.Age);
Console.ReadKey();
}
}
public struct Person
{
public Person(string name)
{
//每个 struct 均已有一个将对象初始化为零的默认构造函数。因此,可以为结构创建的构造函数必须带有一个或多个参数。
Name = "11";
Age = 12;
}
public int Age;
public string Name;
}
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- MVC 5限制所有HTTP请求必须是POST方式 2020-03-14
- .NET下通过HttpListener实现简单的Http服务 2020-02-27
- IIS 503错误解决办法 HTTP Error 503 2019-07-24
- ASP.NET Web API 2 的返回结果 2019-07-23
- 浅谈IHttpHandler 2019-07-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash