问题标签 [writeonly]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 如何创建自定义 *write-only* 依赖属性?
我需要知道制作只写依赖属性的过程是什么。我可以看到 DependencyProperty 类没有用于只写属性的特殊“Register”方法,但我不知道 RegisterAttached 方法是否适用于我正在尝试做的事情。
此属性需要是依赖属性,而不是简单的 CLR 属性。在内部,我的班级需要在此属性上使用 PropertyChangedCallback 以保持稳定。
我知道可以创建只写依赖属性,因为它在
Pro C# 2008 and the .NET 3.5 Platform, Page 1061中有非常清楚的说明。
但是,这是我什至可以在同一页面上找到“依赖属性”和“只写”的唯一地方。而且这位作者显然认为没有必要向读者展示除了基本的读写依赖属性之外的任何程序。当然,这本书可能是一堆废话——但这本书看起来很标准,所以我认为作者是正确的可以肯定。我认为互联网上信息的缺乏源于这样一个事实,即通常没有人需要制作这样的房产。
我知道想要创建自己的只写依赖属性听起来很可疑。我向你保证,在我想要的地方是有意义的。我的类有一个属性,其值仅对设置它的对象有用。如果稍后另一个对象要请求此属性的值,那么在不知道 setter 的原始上下文的情况下,它将无法从该值中得出任何合理的意义。
此属性不用于提供信息目的。让外部对象尝试以这种方式使用属性值是有问题的、危险的和安全风险。所以我认为最好的设计是禁止对这个属性进行读操作。任何使用我的课程的人都会发现他们被迫按照预期的方式使用课程,最终效果会更好、更干净。
c++ - C++ 中的只写引用?
有没有办法编写对对象的只写引用?例如,假设有一个互斥类:
有没有办法保证一个人不能这样做:
另一方面,这是否值得?我知道有些人认为程序员不会故意破坏系统,但是,为什么我们首先要有私有变量,嗯?只是说它是“未定义的行为”会很好,但这似乎有点太不安全了。
编辑:好的,我理解 setter 例程的想法,但这将如何实现?
foo.unlock(); 使用 set 例程将需要每次写入的副本:
尽管您可以在这种特定情况下进行微不足道的优化,例如,如果几个不同的线程都在推动元素,甚至可能擦除一些元素,这可能会变成相当多的内存复制(即每个关键部分一个)。
wpf - 如何编写伪只写依赖属性?
好的,所以这只是我脑海中浮现的关于一种“仅伪写”依赖属性的想法。我之所以这么说,是因为我实际上什至不希望存储该值,而是希望将传递给 setter 的值用于设置其他属性。作为一个假设的例子,我想这样做......
而不是这个...
只是一个 XAML 键入方便的东西,让我设置实际的四个属性更容易键入感谢说只写附加属性。想想折叠的 CSS 规则。实际上,为此,还有另一个...
代替...
现在以第一个为例,一个想法是在内部存储这样的结构,然后将其与现有的 Width、Height、Canvas.Left 和 Canvas.Top 属性同步,但我真的不打算将其读回所以这不是必需的。(从技术上讲,我可以完全忽略它的存储,只在 propertychanged 处理程序中调用 ClearValue,但同样,它并不是真正用于将其读回,所以这只是为了保持一致性。)
从技术上讲,我什至不希望/不需要这是一个 DP,除非我的理解是,如果你需要从 XAML 设置它,它必须是一个 DP,因此我想要什么。如果我们可以设置一个直接的 .NET 属性,那将是完美的,因为我可以设置实现,并根据需要重新构建自己,但是我知道您不能从 XAML 访问 .NET 属性,因此我我回到这里。
现在是的,我知道这个概念会受到很多人的反对,尤其是 XAML 纯粹主义者,但我在问为什么不这样做,如果没有其他原因,请考虑这是一个“可以做到”而不是“应该”的练习它完成了'。我什至不建议这是我将使用的。我只是想更好地理解 DP 和 XAML 的限制,我发现这样的练习真的很有帮助。
所以,想法??
米
couchdb - CouchDB 只写数据库
我正在尝试设置一个可以公开写入且只能由“管理员”角色读取的 CouchDB 数据库。我怎样才能做到这一点。是否有类似validate_doc_update
的访问文档的功能?
c# - C#编译器错误?用于表达式中只写属性的对象初始化器语法使 csc 崩溃
您可能会认为这是一个错误报告,但是我很好奇我在这里是否大错特错,或者是否有来自 Eric 或 Microsoft 其他人的解释。
更新
这现在作为一个错误发布在 Microsoft Connect 上。
描述
考虑以下类:
在这里,A.B
是一个只写但其他很好的属性。
现在,假设我们在 expression 内部分配它:
此代码使 C# 编译器(3.5 .30729.4926 和4.0 .30319.1)吐出
内部编译器错误(地址 013E213F 处的 0xc0000005):可能的罪魁祸首是“BIND”。
和崩溃。
但是,仅用构造函数 ( )替换对象初始值设定项语法 ( )就可以很好地编译{ }
( )
。
复制的完整代码:
(是的,我确实在一个真正的项目上成功了。)
oop - 在设计 OO 语言时,我应该避免只写属性吗?
我正在设计一种面向对象的编程语言以用于学习。该语言具有如下属性:
我是否应该添加只写属性的选项,或者这只会导致使用这种语言的程序中的错误设计决策?
ftpwebrequest - c# ftp 只写
当我尝试连接到“只写”ftp 时,以下代码将引发异常
GetRequestStream() 抛出“权限被拒绝”异常,因为框架实现 FTP 命令如下: - open - user - pwd
请帮忙?
qt - “file.open(QIODevice::ReadOnly)”是什么意思?
我是 Qt 的新手,我在它的入门页面上学习。我想知道以下语句是什么意思,为什么需要它们?
在打开功能中:
同样在保存功能中:
如果没有这些行,我将无法运行这些功能。我尝试阅读文档中的错误处理,但无法准确找到这些语句的含义。
c# - 如何从类中获取“ReadOnly”或“WriteOnly”属性?
我需要从 MyClass 中获取属性列表,不包括“只读”属性,我可以得到它们吗?
最后,我可以让它们排序吗?我知道添加 OrderBy<>,但是如何?我只是在使用扩展。提前致谢。
java - Java 线程安全的只写哈希图
在我的 Java 类中,我包含一个 Hashmap
变量(类属性)并运行一些只写到该变量的线程,HashMap
使用put()
:每次写入发生时,它都会存储一个唯一键(这是由设计完成的)。
类方法上的synchronized
关键字只写是否足以满足安全条件?我的 HashMap 很简单,而不是ConcurrentHashMap
?