首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储3个值的最佳方式?

存储3个值的最佳方式?
EN

Stack Overflow用户
提问于 2015-05-03 07:26:59
回答 5查看 4K关注 0票数 2

我需要为我的程序存储3个值。第一个值是一个字节,第二个值是另一个字节,最后一个值是字符串。一旦我使用了这些值,我希望能够删除它们。

我是不是应该通过创建一个对象并将这3个值作为参数来存储呢?或者创建一个三维列表?

EN

回答 5

Stack Overflow用户

发布于 2015-05-03 07:32:11

创建一个包含这三个值的类型。

代码语言:javascript
复制
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实例。

票数 3
EN

Stack Overflow用户

发布于 2015-05-03 07:29:48

如果它们是相关的,则将它们放在一个类中,并将值作为字段或属性。

一旦这些对象不再被使用,它将被垃圾回收,因此它将被自动删除。

票数 1
EN

Stack Overflow用户

发布于 2015-05-03 07:33:16

一个简单的解决方案可能是使用Tuple,如果这适合您的需要,例如

代码语言:javascript
复制
var tuple = Tuple.Create(someBytes, moreBytes, myString);

您可以使用tuple.Item1tuple.Item2tuple.Item3访问这些值。

当然,如果需要的话,您也可以使用多个Tuple,例如

代码语言:javascript
复制
var list = new List<Tuple<byte, byte, string>> {
    tuple,
    anotherTuple,
    thirdTuple,
    etc
};

但是,正如其他人所提到的,如果您引用的是"like“数据,则应该创建一个class

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30008598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档