我需要为我的程序存储3个值。第一个值是一个字节,第二个值是另一个字节,最后一个值是字符串。一旦我使用了这些值,我希望能够删除它们。
我是不是应该通过创建一个对象并将这3个值作为参数来存储呢?或者创建一个三维列表?
发布于 2015-05-03 07:32:11
创建一个包含这三个值的类型。
class SomeData
{
private readonly byte _firstByte;
private readonly byte _secondByte;
private readonly string _stringData;
public byte FirstByte { get { return _firstByte; } }
public byte SecondByte { get { return _secondByte; } }
public string StringData { get { return _stringData; } }
public SomeData(byte first, byte second, string data)
{
_firstByte = first;
_secondByte = second;
_stringData = data;
}
}所编写的类是不可变的,但您可以根据需要逐步开放它以进行修改。
关于一旦使用这些值就将其删除: GC会自动清除您不再引用的任何SomeData实例。
发布于 2015-05-03 07:29:48
如果它们是相关的,则将它们放在一个类中,并将值作为字段或属性。
一旦这些对象不再被使用,它将被垃圾回收,因此它将被自动删除。
发布于 2015-05-03 07:33:16
一个简单的解决方案可能是使用Tuple,如果这适合您的需要,例如
var tuple = Tuple.Create(someBytes, moreBytes, myString);您可以使用tuple.Item1、tuple.Item2和tuple.Item3访问这些值。
当然,如果需要的话,您也可以使用多个Tuple,例如
var list = new List<Tuple<byte, byte, string>> {
tuple,
anotherTuple,
thirdTuple,
etc
};但是,正如其他人所提到的,如果您引用的是"like“数据,则应该创建一个class。
https://stackoverflow.com/questions/30008598
复制相似问题