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

C#的属性(Property)应用说明(二)

Property的应用说明补充:

一.自定义逻辑:

可以在 get 和 set 访问器中包含自定义的逻辑。

public class Person
{private string name;public string Name{get { return name; }set{if (string.IsNullOrWhiteSpace(value))throw new ArgumentException("Name cannot be empty.");name = value;}}
}

二.计算属性:

属性也可以是计算的,不依赖于字段。

public class Rectangle
{public int Width { get; set; }public int Height { get; set; }public int Area{get { return Width * Height; }}
}

 三.访问器(Accessors):

属性(Property)的访问器(accessor)包含有助于获取(读取或计算)或设置(写入)属性的可执行语句。访问器(accessor)声明可包含一个 get 访问器、一个 set 访问器,或者同时包含二者。

// 声明类型为 string 的 Code 属性
public string Code
{
   get
   {
      return code;
   }
   set
   {
      code = value;
   }
}

// 声明类型为 string 的 Name 属性
public string Name
{
   get
   {
     return name;
   }
   set
   {
     name = value;
   }
}

// 声明类型为 int 的 Age 属性
public int Age
{
   get
   {
      return age;
   }
   set
   {
      age = value;
   }
}

四. 实例:

4.1实例界面

4.2实例代码

        class Student{private string code = "N/A";private string name = "not known";private int age = 0;// 声明类型为 string 的 Code 属性public string Code{get{return code;}set{code = value;}}// 声明类型为 string 的 Name 属性public string Name{get{return name;}set{name = value;}}// 声明类型为 int 的 Age 属性public int Age{get{return age;}set{age = value;}}public override string ToString(){return "Code = " + Code + ", Name = " + Name + ", Age = " + Age;}}private void test4(){// 创建一个新的 Student 对象Student s = new Student();// 设置 student 的 code、name 和 ages.Code = "0001";s.Name = "Jack";s.Age = 18;textBox4.Text = "Student Info: " + s.ToString();// 增加年龄s.Age += 1;textBox5.Text = "Student Info: " + s.ToString();}private void button14_Click(object sender, EventArgs e){test4();}

以上,一个简单的实例介绍应用,便于理解Property。

http://www.lryc.cn/news/447686.html

相关文章:

  • VUE.js笔记
  • SpringBoot--yml配置文件的时间/大小的单位转换
  • 【算法业务】互联网风控业务中的拒绝推断场景算法应用分享(涉及半监督算法、异常检测、变分自编码、样本权重自适应调整、迁移学习等)
  • Windows PowerShell相关笔记
  • 力扣9.24
  • NRF21540—低功耗蓝牙,蓝牙mesh、Thread和Zigbee和2.4 GHz私有协议范围扩展射频前端模块
  • 2024最新Linux Socket编程
  • Linux下的驱动开发二
  • 【JAVA报错已解决】 Java.lang.ArrayIndexOutOfBoundsException
  • 2024 CSP 游记
  • 双十一有什么推荐好物?,这些你不能错过的宝藏好物推荐
  • NSSCTF [HUBUCTF 2022 新生赛]simple_RE(变种base64编码)
  • clickhouse使用extract提取分号之前,之后,中间的内容
  • Unity3D Compute Shader同步详解
  • 3D模型在UI设计中应用越来越多,给UI带来了什么?
  • 前端框架的选择与考量:一场技术的盛宴
  • 第五部分:7---信号的捕捉
  • HarmonyOS鸿蒙开发实战( Beta5.0)页面加载效果实现详解实践案例
  • 计算机网络中的VLAN详解
  • Nacos学习
  • 后台数据管理系统 - 项目架构设计-Vue3+axios+Element-plus(0926)
  • 验收测试:从需求到交付的全程把控!
  • 第十七节 鼠标的操作与相应
  • 深圳·2025胶粘剂展会 BOND第六届胶展
  • 什么是网络安全自动化以及优势与挑战
  • java中的ArrayList和LinkedList的底层剖析
  • 占领矩阵-第15届蓝桥省赛Scratch中级组真题第5题
  • [论文笔记] Chain-of-Thought Reasoning without Prompting
  • C++八股进阶
  • 渗透测试--文件上传常用绕过方式