为什么在属性声明中只使用setter?

2024-03-01

int MyProperty { set; }

在财产上仅使用 setter 的想法是什么?如果我们为一个属性设置某个值,我猜它很可能在某个时刻读取该值?


只写属性在基类库中很少见,但是XmlReaderSettings.XmlResolver http://msdn.microsoft.com/en-us/library/system.xml.xmlreadersettings.xmlresolver.aspx就是一个例子。根据该主题中的安全说明,我认为省略了 get 访问器,以防止部分受信任的代码访问或篡改默认解析器。

XmlResolver.Credentials http://msdn.microsoft.com/en-us/library/system.xml.xmlresolver.credentials.aspx and XmlTextReader.XmlResolver http://msdn.microsoft.com/en-us/library/system.xml.xmltextreader.xmlresolver.aspx出于同样的原因,可能是只写属性。

(奇怪的是,XmlAttribute.InnerText http://msdn.microsoft.com/en-us/library/system.xml.xmlattribute.innertext.aspx也是一个只写属性,但这似乎不是一个好的设计。)

按照上面的例子,我想说你应该使用只写属性only当读写属性有意义,但出于安全原因您不需要 get 访问器时。

你当然可以使用Set方法,但属性的优点是它可以在对象初始值设定项中使用,就像通常使用的那样XmlReaderSettings.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在属性声明中只使用setter? 的相关文章

  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 引用的程序集自动由 Visual Studio 替换

    我有 2 个项目 一个可移植类库和一个常规单元测试项目 在可移植类库中 我使用 NuGet 来引用 Microsoft BCL 可移植包 它附带 2 个程序集 System Threading Tasks dll and System Ru
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • Hazelcast 服务器作为 Linux 服务

    如何在生产环境中将 hazelcast 服务器作为 Linux 服务运行 java server cp hazelcast jar com hazelcast examples StartServer StartServer 运行服务器并输
  • 根据列名列表将数据表拆分为多个数据表

    我有一个如下所示的数据表 ID Country Supplier 515 DE A 515 CH A 515 FR A 516 DE B 516 FR B 517 DE C 517 IT C 我有一个List
  • PhantomJS 使用 QtWebKit 还是 Blink?

    PhantomJS CasperJS 是否使用 WebKit 或 Chromium 作为默认浏览器驱动程序 如果是WebKit 是直接WebKit还是qt或者gtk PhantomJS 基于 QtWebKit 常见问题解答说 问 Phant
  • 使用react和mapbox gl或maplibre gl动态加载标记

    我正在学习 React 我想显示一张地图 在该地图上动态显示和隐藏标记 这有效 我用Maplibre GL https github com maplibre maplibre gl js 这是一个分叉地图盒 GL https docs m
  • 如何解释函数实例的bind/>>>=?

    我正在努力提高我的理解Applicatives and Monad通过在 Javascript 中实现其函数实例来实现 我对 Haskell 的了解有限 我希望我的问题有意义 这是我的实现fmap lt gt and gt gt 为了Fun
  • malloc(0) 有什么意义?

    我刚看到这个code https github com mxcl scrobsub blob 2ad2f6131e5900d4c62d8c5bcdb15c069f17e3bd scrobsub c L94 artist char mallo
  • 类 PhpStorm_Codeception_ReportPrinter 不存在

    我尝试在 PhpStorm 中运行 Codeception 功能测试 但不断收到一条错误 提示缺少类 我在互联网上搜索过 除了一篇文章之外 没有发现任何可以解决这个问题的方法https intellij support jetbrains
  • 无法加载文件或程序集“System.Net.Http”

    在我的构建输出的诊断视图中显示了此冲突 System Net Http Version 4 0 0 0 Culture neutral PublicKeyToken b03f5f7f11d50a3a 和 System Net Http Ve
  • 使用 CSS Grid 时如何使内容居中并使背景覆盖整列?

    当我添加这段代码时 place items center 我的元素居中 但只有文本应用了背景颜色 当我删除此代码时 place items center 背景颜色覆盖整个列 但文本不再居中 main display grid grid te
  • 如何找出浏览器实际使用的网站图标

    我有一个新网站 其中包含使用源文件自动生成的一组图标图像真实网站图标生成器 http realfavicongenerator net 并且有 9 个苹果图标 1 Android 图标 3 个命名图标 1 Safari 固定SVG 1 js
  • 在 Wayland 和 X11 上模拟鼠标和键盘输入

    我正在对用 C 编写的 OpenGL 应用程序进行小型验收测试 到目前为止 我只能截取屏幕截图 还没有找到在 Wayland 和 X11 上模拟鼠标和键盘输入的方法 关于如何在 Wayland X11 中操作特定窗口的事件流有什么建议吗 用
  • *这*真的是从 Java 代码启动第二个 JVM 的最佳方式吗?

    这是我的后续自己之前的问题 https stackoverflow com questions 1218790 我有点不好意思问这个 但是无论如何 如何以独立于系统的方式从独立的 Java 程序启动第二个 JVM 并且无需依赖诸如 JAVA
  • Core Data 属性更改为 nil(与 ARC 相关?)

    我有一些核心数据功能 在最近进行一些 看似不相关的 更改之前一直运行良好 现在我遇到问题 属于特定 NSManagedObject 子类实例的所有属性突然返回 nil 假设我的 NSManagedObject 子类名为 Foo 它只有一个名
  • Android Volley,使缓存无效并每 (x) 分钟发出新请求

    我找不到这个问题的更新答案 我正在使用 Volley 向 Web API 发送请求 它返回 JSON 我正在使用如下所示的缓存功能 但我想确保列表视图经常刷新 现在假设为 30 分钟 如何使该给定 URL 的缓存无效 以便我的应用程序自动处
  • 如何将背景图像放置在距其容器右侧绝对距离的位置?

    我可以使用以下命令将一个小背景图像 图标放置在距其容器左中心 4 像素的位置 background url no repeat 4px 50 我怎样才能把它定位到距离 4 个像素的地方right 根据您的情况以及您想要支持的浏览器 此方法有
  • 链接在 UI 可选内部不起作用

    这些是来自 JQuery 网站的代码 我重写了其中的内容
  • 加拿大邮政编码功能的高效正则表达式

    var regex A Za z d A Za z d A Za z d var match regex exec value if match if value indexOf 1 value indexOf 1 value length
  • 按多列分组 - LINQ

    我见过按列乘法分组的例子 但是对于类 我正在尝试为 EnumerableDataRowList 执行此操作 但我得到 无效的匿名类型成员声明符 EnumerableDataRowList
  • 如何绘制箭头(在 Android 中)?

    我对 Android 相当陌生 一直在尝试 Canvas 我正在尝试绘制箭头 但我只是运气好地绘制了轴 所有箭头都不起作用 我搜索了一下 找到了一个Java示例 但是Android没有GeneralPath or AffineTransfo
  • 为什么在属性声明中只使用setter?

    int MyProperty set 在财产上仅使用 setter 的想法是什么 如果我们为一个属性设置某个值 我猜它很可能在某个时刻读取该值 只写属性在基类库中很少见 但是XmlReaderSettings XmlResolver htt