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

C#接口的setter或getter的访问性限制

有时候只想对外提供getter,但是属性的赋值又必须是setter,此时,可以限制setter的访问性。例如,假设有一个自定义字典(MyDict)属性,该属性我只希望外部能够访问,但是设置必须在内部,则可提供如下声明

namespace LibA{public interface ITranslation{MyDict Dict{get;internal set;}}
}

如果在LibB中访问,则

public class MyTranslation:ITranslation{private MyDict _dict = null;public MyDict Dict{get{return _dict;}set{_dict = value;}}
}public class Main{public void do(){MyTranslation translation = new MyTranslation();var count = translation.Dict.Count;//可访问translation.Dict = new MyDict();//非法}
}

用途。如果我用反射方式在LibA下动态创建Lib的MyTranslation对象,则可使用setter

Assembly assembly = Assembly.LoadFrom(Environment.CurrentDirectory + "\\" + filename);
ITranslation? translation = assembly.CreateInstance(translation_name, true, BindingFlags.Default, null, null, null, activationAttributes: null) as ITranslation;if (translation != null)
{translation.Dict = new MyDict();
}
http://www.xdnf.cn/news/7286.html

相关文章:

  • ## Docker 中 Elasticsearch 启动失败:日志文件权限问题排查与解决
  • PYTHON训练营DAY30
  • Git基础面试题
  • Git冲突解决:从手足无措到游刃有余的蜕变之路
  • 动态IP技术在跨境电商中的创新应用与战略价值解析
  • Icecream Video Editor:简单易用的视频编辑软件,轻松打造专业视频
  • 基础深度补全模型DepthLab: From Partial to Complete
  • CRMEB多商户预约服务上门师傅端
  • Web漏洞扫描服务的特点与优势:守护数字时代的安全防线
  • 【盈达科技】AICC™系统:重新定义生成式AI时代的内容竞争力
  • 10.15 LangChain v0.3重磅升级:Tool Calling技术颠覆大模型工具调用,效率飙升300%!
  • JAVA请求vllm的api服务报错Unsupported upgrade request、 Invalid HTTP request received.
  • 一个由微软开源的 Python 工具,用于将多种文件格式转换为 Markdown 格式
  • 【框架安装】win10 配置安装GPU加速的tensorflow和keras教程
  • 3.QMainWindow菜单栏menu bar和工具栏tool bars
  • 分布式事务
  • SID 2025上的天马,用“好屏”技术重构产业叙事
  • 【NLP】36. 从指令微调到人类偏好:构建更有用的大语言模型
  • [Spring Boot]整合Java Mail实现Outlook发送邮件
  • 《AI高效运维体系建设创新》技术连载(四)
  • 数据库连接问题排查全攻略:从服务状态到网络配置的深度解析
  • PCL点云库点云数据处理入门系列教材目录(2025年5月更新....)
  • HttpMessageConverter 的作用是什么? 它是如何实现请求体到对象、对象到响应体的自动转换的(特别是 JSON/XML)?
  • Qwen3 - 0.6B与Bert文本分类实验:深度见解与性能剖析
  • 遨游科普:三防平板是什么?应用在什么场景?
  • Perl数据库测试实战:从基础到高级的完整解决方案
  • 视觉-和-语言导航的综述:任务、方法和未来方向
  • Python编程从入门到实践 PDF 高清版
  • 【深度学习基础】损失函数与优化算法详解:从理论到实践
  • A3B和AWQ 是什么;Safetensors 是什么?