我正在开发一个需要访问公共字符串的应用程序。然而,我也希望限制写访问。因为我有很多字符串,所以我想避免每个字符串都有一个getter和private setter。
请参阅以下代码:
public readonly string privateMem, peakVM, peakPaged, pagedSysMem, pagedMem, nonpagedSysMem;
public override void Capture()
{
using (Process p = Process.GetCurrentProcess())
{
// Throws error as privateMem can't be assigned a value
privateMem = string.Format("{0:N0} K", p.PrivateMemorySize64 / 1024);
peakVM = string.Format("{0:N0} K", p.PeakVirtualMemorySize64 / 1024);
peakPaged = string.Format("{0:N0} K", p.PeakPagedMemorySize64 / 1024);
pagedSysMem = string.Format("{0:N0} K", p.PagedSystemMemorySize64 / 1024);
pagedMem = string.Format("{0:N0} K", p.PagedMemorySize64 / 1024);
nonpagedSysMem = string.Format("{0:N0} K", p.NonpagedSystemMemorySize64 / 1024);
}
} 我知道有一些方法可以通过反射为只读字段赋值,但是我从其他几个堆栈溢出问题中发现这是一个糟糕的想法。
所以总结一下:
如何在没有反射的情况下为只读字符串赋值,或者不使用冗长的getter和setter是否存在更好的解决方案?
有没有一种方法可以声明一个变量,为它赋值,然后将它指定为只读?
发布于 2016-07-08 22:05:39
public string privateMem { get; private set; }
public string peakVM { get; private set; }
public string peakPaged { get; private set; }
public string pagedSysMem { get; private set; }
public string pagedMem { get; private set; }
public string nonpagedSysMem { get; private set; }这花了大约20秒。这有什么好罗嗦的?
https://stackoverflow.com/questions/38268379
复制相似问题