当前位置: 首页 > news >正文

属性的运用和理解

1:属性快捷方式

//输入:prop,回车键,TAB键public int MyProperty { get; set; }
 //输入:propfull,回车键,TAB键
private int myVar;public int MyProperty{get { return myVar; }set { myVar = value; }}

2:定义属性()

namespace ConsoleApp2
{class student{public string name { get; set; }private int age;public int Age{get { return age; }set { age = value; }}}
}

3:打开反汇编工具,将生成的exe文件拖入即可

4:含义: 

 5:断点调试属性是如何赋值的(1)

namespace ConsoleApp2
{class student{private int age=0;public int Age{get { return age; }set { age = value; }} }
}
class Program{static void Main(string[] args){student student = new student();student.Age = 10;}}
}

a:

 b:

c: 

d:

6: 断点调试属性是如何赋值的(2)

namespace ConsoleApp2
{class student{int age = 10;public int Age { get; set; } = 30;}
}
namespace ConsoleApp2
{class Program{static void Main(string[] args){student student = new student();student.Age = 10;}}
}

a:

b: 

c:

 

6:属性扩展方法

a:增加业务判度逻辑


namespace ConsoleApp2
{class student{private int age;public int Age{get { return age; }set {if (age<0){age = 1;}else{age = value;}               }}}
}

 b:设置只读字段功能(无私有字段)

namespace ConsoleApp2
{class student{//无私有字段,外界读取数据的入口public int Age{get {int result = 2;//此处的值可以是别的地方获取来的return result;}           }}
}

7:属性的初始化

namespace ConsoleApp2
{class student{public int Age { get; set; } = 10;public string  Name { get;  } = "苏苏";public DateTime time{get { return DateTime.Now; }}public DateTime time2 { get => DateTime.Now; }public DateTime time3=> DateTime.Now;}
}

8:构造方法和对象初始化顺序(先初始化字段和显示赋值的属性,原因:如果字段没有初始化,属性和私有字段在构造方法中无法调用),再构造方法

9:对象初始化器和构造方法对比 

对象初始化器:只能初始化属性


namespace ConsoleApp2
{class Program{static void Main(string[] args){student student = new student{Age = 10,MyProperty=1} ;}}
}

构造方法:初始化成员变量,属性,调用方法等

namespace ConsoleApp2
{class student{public student(){}public student(string name){this.name = name;}public student(string name,int age):this(name){this.age = age;}private string name = "苏苏";private int age=20;public int Age{get { return age; }set { age = value; }}public int MyProperty { get; set; } = 20;}
}

http://www.dtcms.com/a/309091.html

相关文章:

  • 赛博算命之八字测算事业运势的Java实现(四柱、五行、十神、流年、格局详细测算)
  • Redisson实现Redis分布式锁的原理
  • Windows和Linux的tree工具
  • 【智能协同云图库】第七期:基于AI调用阿里云百炼大模型,实现AI图片编辑功能
  • 渗透测试报告通常包含哪些关键内容?
  • redis快速部署、集成、调优
  • Linux通用SPI作为Master——回环测试
  • Redis学习-----Redis的基本数据类型
  • Dify版本升级实操
  • Edge中如何找到原IE浏览器的Internet选项
  • 基于html,css,jquery,django,lstm,cnn,tensorflow,bert,推荐算法,mysql数据库
  • 8月1日RED指令强制生效,您的设备准备好了吗?
  • uniapp 开发微信小程序,获取经纬度(uni.getLocation)并且转化详细地址(‌高德地图逆地理编码API、‌腾讯地图逆地理编码)
  • 【华为机试】127. 单词接龙
  • Python match-case 模式匹配详解
  • 【Mysql】字段隐式转换对where条件和join关联条件的影响
  • 【Java面试题】缓存穿透
  • 什么是doris
  • 优化网站域名的SEO策略指南
  • Qt开发中的安全技术问题详解
  • MySQL(172)如何进行MySQL的全局变量设置?
  • 深度揭秘端口映射:原理、场景、路由映射故障,与内网IP端口映射外网工具的选择
  • 微服务消息队列之RabbitMQ,深入了解
  • 逻辑斯蒂回归的模型优化
  • IO流-文件实例
  • MySQL--组从复制的详解及功能演练
  • 数据赋能(371)——数据挖掘——概述
  • java的冒泡排序算法
  • 从O(n²)到O(n log n):深度剖析快速排序的内存优化与cache-friendly实现
  • Java Map和Set