csh*_*net 8 .net c# coding-style
前言
一段时间以来,我一直在几乎所有类字段中使用readonly修饰符.我将它用于List <T>成员,IDisposeable成员,整数,字符串等......除了我打算改变的值类型之外的所有东西.即使我通常想在Dispose()上取消成员,我也倾向于这样做.恕我直言不需要if语句来测试null或处理条件的优点大大超过了"可以"多次处理的对象中的"潜在"问题.
问题
你什么时候使用readonly,或者是吗?
您或您的公司是否有关于readonly使用的最佳实践和/或编码标准?
我很想听听你对以下样本课的看法,一般概念是不是很好的做法?
class FileReaderWriter : IFileReaderWriter, IDisposable
{
private readonly string _file;
private readonly Stream _io;
public FileReaderWriter(string path)
{
_io = File.Open(_file = Check.NotEmpty(path), FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
}
public void Dispose() { _io.Dispose(); }
...
}
Run Code Online (Sandbox Code Playgroud)
在代码成功编译的任何情况下,我都会在字段上使用readonly.
为什么?很简单,如果字段引用/值突然从不变为变化,则可能违反类和消费者中的微妙假设.因此,我想提醒这一变化,以评估这种新行为的含义.
和你一样,我会readonly
尽可能地使用。在可能的情况下,我也使用不可变集合。
Dispose
是一个有趣的,因为它有效地将类型从“可用”转变为“不可用” - 我很想有一个非只读bool
成员来表明这一点。话又说回来,我很少发现自己需要实施IDisposable
. 通常,当我使用资源时,仅适用于单个方法的过程,因此我将资源设置为该方法的本地资源。
归档时间: |
|
查看次数: |
937 次 |
最近记录: |