问题标签 [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 投票
5 回答
53808 浏览

.net - 如何使用 .net StreamReader 打开已打开的文件?

我有一些 .csv 文件用作测试台的一部分。我可以毫无问题地打开它们并阅读它们,除非我已经在 Excel 中打开了文件,在这种情况下我会得到IOException

System.IO.IOException:该进程无法访问文件“TestData.csv”,因为它正被另一个进程使用。

这是来自测试台的片段:

这是 StreamReader 的限制吗?我可以在其他应用程序(例如 Notepad++)中打开该文件,因此它不会是操作系统问题。也许我需要使用其他课程?如果有人知道我如何解决这个问题(除了关闭 excel!),我将不胜感激。

0 投票
4 回答
2563 浏览

c# - 只读是否有任何运行时开销?

出于某种原因,我一直假设readonly字段具有与之相关的开销,我认为这是 CLR 跟踪readonly字段是否已初始化。这里的开销将是一些额外的内存使用来跟踪状态并在分配值时进行检查。

也许我假设这是因为我不知道一个readonly字段只能在构造函数内或字段声明本身内初始化,并且没有运行时检查,您将无法保证它不会被多次分配方法。但是现在我知道了,C# 编译器可以很容易地对其进行静态检查,对吧?是这样吗?

另一个原因是我读到使用 对readonly性能有“轻微”影响,但他们从未提出过这种说法,我找不到关于这个主题的信息,因此我提出了问题。我不知道除了运行时检查之外还有什么其他的性能影响。

第三个原因是我看到它readonly在编译后的 IL 中保留为initonly,那么如果readonlyC# 编译器保证该字段永远不会分配给构造函数还是声明?

另一方面,我发现您可以通过反射设置 a 的值,而 CLR 不会抛出异常,如果是运行时检查readonly int,这是不可能的。readonly

所以我的猜测是:“只读”只是一个编译时特性,任何人都可以确认/否认这一点吗?如果是,那么将这些信息包含在 IL 中的原因是什么?

0 投票
8 回答
54752 浏览

c# - 我可以使用反射更改 C# 中的私有只读字段吗?

我想知道,由于可以使用反射完成很多事情,我可以在构造函数完成执行后更改私有只读字段吗?
(注:只是好奇)

0 投票
7 回答
23996 浏览

c# - C# 从 get 中返回一个只读变量;放;

我发誓我见过这样的例子,但已经用谷歌搜索了一段时间,找不到它。

我有一个类引用了一个对象并且需要一个 GET;方法。我的问题是我不希望任何人能够摆弄它,即我希望他们获得它的只读版本,(注意我需要能够在我的班级中更改它)。

谢谢

0 投票
1 回答
1733 浏览

javascript - 只读输入字段不会在 IE6 中触发 OnKeyPress

我正在为 Enter 键实现一种特殊行为。问题是我的 ASP.net 库生成了一个只读字段;当用户进入该字段时(进入它是有意义的;所以我想要这种行为)并按 Enter 提交表单,它不会提交,因为它是一个只读字段。

我写了一个解决方法来连接你的普通 onkeypress=checkEnter,但是 IE6 仍然不会触发这个事件;火狐会。

我可以做些什么来检测 IE6 只读字段上的 Enter?

谢谢!

0 投票
2 回答
5394 浏览

.net - .NET 中的只读数组

数组是迭代无序项集的一种快速方法,而且它们通常是只读的。虽然使用 `readonly' 关键字公开数组是无用的,因为数组的内容仍然可以更改,但 ReadOnlyCollection<T> 包装器解决了这个问题。问题是它比我所做的测试中的普通数组慢 4 倍。(我知道,返回数组的副本只会对性能造成一次影响,但理想情况下我也不想在这上面浪费 CPU 时间。)

我注意到我可以获得只读完整性检查的好处,同时保留具有如下类的普通数组的性能:

问题是我失去了 foreach() 语法的便利性。即,为了保持性能,我必须使用 for(;;) 循环遍历它。-- 我曾经写过 C 代码,其中每个循环都是一个 for(;;)。也许我已经被宠坏了。-- 如果我实现 IEnumerable<T>,那么我得到的性能与 ReadOnlyCollection<T> 相同,而这个类是没用的。

知道如何实现所有 3 个目标的完美结合:只读的完整性检查、没有性能损失和方便的 foreach() 语法?

0 投票
2 回答
712 浏览

wpf - 使用 WPF 文本框模拟 VS 输出窗口的文本框时出现问题

在 Visual Studio 的输出窗口中,您可以将文本插入符号放在输出的末尾,以便在记录新文本时文本框自动向下滚动。当插入符号不在末尾时,它不会向下滚动。我想用 WPF 文本框来模仿它。

我能够做到,但前提是 TextBox 不是只读的。那是因为我需要一个插入符号,当您有一个只读文本框时,不会显示任何内容。

问题是我的文本框是可编辑的(使用复制/剪切/粘贴命令和键入),但我不想。

有干净的解决方案吗?我不想阻止所有键,因为我有在 TextBox 聚焦时需要工作的 CommandBindings。

谢谢

0 投票
4 回答
5682 浏览

eclipse - 如何在 Eclipse 中制作只读编辑器(Eclipse 插件开发)

我想知道如何制作一个真正只读的 Eclipse 编辑器。我的编辑器扩展了TextEditor,所以当我重新实现方法时isEditable总是返回false

这是最简单的方法,它可以防止用户在编辑器中打开的文档中键入或删除任何内容。但是您仍然可以更改文档的内容,例如使用查找/替换。这是不希望的..

有没有其他简单的方法来实现这个目标?

0 投票
3 回答
3586 浏览

php - PHP - 只读电子表格文件类型?

我正在使用一个简单的基于 Web 的 PHP 应用程序,它将表格输出为电子表格

但我发现下载的电子表格作为只读文件打开,必须保存在本地,并且(在 Windows 上的 Excel 中)类型更改为 XLS(来自 HTML)。有没有办法正确设置文件类型的属性,以便进行简单的保存不需要更正文件类型?

下载的文件是出于安全性而只读还是不正常?

此外,我不喜欢在 Excel 或 OpenOffice(Linux 上)中打开电子表格时创建的自动边框。我宁愿没有边框格式。文件中有没有办法指定不添加格式,或者这是否内置在这些应用程序中?

0 投票
3 回答
1904 浏览

asp.net - ASP.NET - 启用 = False 时为标签交换文本框

设置:带有大量 TextBox 控件的 Web 表单。

当我将 TextBox 控件的任何一个 Enabled 属性设置为 False 时,我想在运行时将该 TextBox “交换”为标签。这里的想法是,如果它无论如何都是只读的,请不要在为编辑而设计的控件中显示它。

我认为这应该非常简单且可重复使用,但是最好的方法是什么?