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

C# CallerMemberName特性

当你在一个方法运用了CallerMemberName特性,编译器会自动将调用该方法的方法或属性的名称作为该参数的默认值,可应用于MVVM框架。

代码:

using System.ComponentModel;
using System.Runtime.CompilerServices;public class Person : INotifyPropertyChanged
{private string name;public event PropertyChangedEventHandler PropertyChanged;// 使用 [CallerMemberName] 来避免硬编码属性名protected void OnPropertyChanged([CallerMemberName] string propertyName = null){PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}public string Name{get => name;set{if (name != value){name = value;OnPropertyChanged(); // 不需要传递参数,[CallerMemberName] 自动提供}}}
}

http://www.lqws.cn/news/100693.html

相关文章:

  • macos常见且应该避免被覆盖的系统环境变量(避免用 USERNAME 作为你的自定义变量名)
  • 6.3 day 35
  • 【iOS】多线程基础
  • iptables常用命令
  • 014校园管理系统技术解析:构建智慧校园管理平台
  • Cursor + Claude 4:微信小程序流量主变现开发实战案例
  • 【notepad++】如何设置notepad++背景颜色?
  • 如何用 pnpm patch 给 element-plus 打补丁修复线上 bug(以 2.4.4 修复 PR#15197 为例)
  • 【学习记录】深入解析 AI 交互中的五大核心概念:Prompt、Agent、MCP、Function Calling 与 Tools
  • MyBatis实战项目测试
  • GIC v3 v4 虚拟化架构
  • C++--范围for循环详解
  • 基于大模型的慢性硬脑膜下血肿预测与诊疗系统技术方案
  • 手把手教你用Appsmith打造企业级低代码平台:从部署到性能调优实战
  • 虚拟线程与消息队列:Spring Boot 3.5 中异步架构的演进与选择
  • C++中锁和原子操作的区别及取舍
  • JavaScript性能优化实战指南
  • (25) 混沌工程测试实现
  • 【JS服务器】JETBRAINS IDEs JS服务器使用什么编译JNI
  • 新手小白使用VMware创建虚拟机练习Linux
  • 从0到1,带你走进Flink的世界
  • 腾讯云国际版和国内版账户通用吗?一样吗?为什么?
  • Nginx + Tomcat负载均衡群集
  • resolvers: [ElementPlusResolver()] 有什么用?
  • POJO,DTO,VO和Model
  • DPDK与网络协议栈
  • RPG20.创建敌人的初始能力和加载武器
  • 基于Android的一周穿搭APP的设计与实现 _springboot+vue
  • 【Pandas】pandas DataFrame rename
  • Apache Druid