问题标签 [readonly]

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.

0 投票
4 回答
4827 浏览

c# - 在 C# 中实现只读(不可变)对象接口

我的目标是确保在大多数情况下,对象是通过作为完整接口子集的“只读接口”使用的。

  • 例如,如果我使用 C++,我将只返回一个const对象。
  • 在 C# 中,如果我可以通过接口实现这一点,我只会实现一个只读接口并在任何地方使用它。但是,我需要运算符重载,这对于接口是不允许的。这就是为什么我必须使用抽象基类。
  • 但是如果我定义了一个抽象基类,我就不能改变派生类型的可访问性。

那么,如何在 C# 中实现我的目标?

0 投票
6 回答
5214 浏览

c# - 在打开之前检查文件是否已被使用(网络驱动器,C#)

.Net 中是否有任何方法可以在打开文件(在本地网络驱动器上)之前检查是否已在使用中?

0 投票
3 回答
3520 浏览

c# - 为什么 readonly 和 volatile 修饰符是互斥的?

我有一个引用类型变量readonly,因为引用永远不会改变,只会改变它的属性。当我尝试将volatile修饰符添加到它时,编译器警告我它不会让两个修饰符都应用于同一个变量。但我认为我需要它是 volatile 的,因为我不想在读取它的属性时遇到缓存问题。我错过了什么吗?还是编译器错了?

更新正如 Martin 在以下评论之一中所述:对于引用类型的对象,readonly 和 volatile 修饰符都仅适用于引用,而不适用于对象的属性。这就是我所缺少的,所以编译器是正确的。

0 投票
9 回答
22627 浏览

c# - C# 中的私有 const 和私有只读变量之间有区别吗?

private const在 C# 中具有变量或变量之间是否有区别private static readonly(除了必须分配const编译时表达式)?

由于它们都是私有的,因此没有与其他库的链接。那么它会有什么不同吗?例如,它可以产生性能差异吗?实习字符串?有什么类似的吗?

0 投票
5 回答
1290 浏览

c# - 限制对只读属性的方法调用的访问

我有一个类,它定义了一个有效公开私有字段的只读属性,如下所示:

现在消费者不可能直接管理我的财产,所以像 aContainer.MyList = new List(); 这样的代码 生成编译时错误。但是,消费者完全可以自由地调用他得到的引用的各种方法,所以这是完全有效的代码

哪种破坏了整个只读概念。

是否有任何健全的解决方法可以让我拥有真正的只读参考属性?

PS我不能只返回列表的副本,因为这样用户会认为他做了所有必要的更改,但是唉......他们会消失的。

0 投票
13 回答
27031 浏览

c# - 为什么 C# 不允许只读局部变量?

与同事就这件事进行了友好的辩论。我们对此有一些想法,但想知道 SO 人群对此有何看法?

0 投票
2 回答
5961 浏览

windows - 如何清除 Perl 文件中的只读标志?

我需要清除在 Windows 上运行的 Perl 程序中文件的只读标志。

我知道system("attrib -r $filename")会起作用,但我想知道 Perl 中是否没有内置选项可以做到这一点。chmod 777, $filename似乎不起作用。

谢谢,

分裂者

0 投票
6 回答
1454 浏览

visual-studio - 有没有办法在 Visual Studio 中使代码区域“只读”?

每隔一段时间,我就完成了一段代码的修改,我想“锁定”或将代码区域设为“只读”。这样,我可以修改代码的唯一方法是先解锁它。有没有办法做到这一点?

0 投票
2 回答
1958 浏览

.net - 更改文件的只读属性

我似乎无法更改文件上的只读标志。我已经在 Vista 和 XP 上尝试过,结果相同,所以我认为这不是 UAC 相关问题。

不过,我所做的一切似乎都不起作用。请参阅下面的示例。有人可以告诉我我做错了什么吗?

0 投票
4 回答
20587 浏览

.net - 为什么 String.Empty 不是常数?

在 .NET 中,为什么String.Empty只读而不是常量?我只是想知道是否有人知道该决定背后的原因。