Day*_*One 5 c# string-interning
在下面的例子中,我在构造函数中实现字符串,这很好.但是当我从二进制格式化程序反序列化对象时,我不认为该字符串将被实现,因为应该调用构造函数.我应该如何确保_name字符串被实现?......还是会被拘禁好吗?
编辑:所以它似乎工作(正确实习字符串)而不处理OnDeserializedAttribute.它是如何做到的?
我正在使用内存分析器,无论有没有下面的方法,它仍然可以实现字符串?魔法?: - /
[OnDeserializedAttribute]
private void OnDeserialized(StreamingContext context)
{
_name = string.Intern(_name);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
[Serializable]
class City
{
private readonly string _name;
public City(string t)
{
_name = string.Intern(t);
}
public string Name
{
get { return _name; }
}
public override string ToString()
{
return _name;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
365 次 |
| 最近记录: |