Tag: struct

哪个最适合数据存储结构/类?

我们已经在SO中看到了很多关于c#中的类vs结构的讨论。 最后得出的结论是它的堆/堆内存分配。 并建议在小型数据结构中使用结构 。 现在我有一种情况来决定这两种选择中的简单数据存储。 在我们的应用程序中,我们有数千个类,只是作为简单的数据存储(仅暴露的公共字段),它们在不同的模块和服务之间传递。 根据我的理解,出于性能原因,我觉得最好继续使用struct而不是类。 因为这些是简单的数据结构,所以只能充当数据存储。 在继续这个之前,我需要经历过这场斗争的人们的一些专家建议。 我的理解是正确的吗? 我见过大多数ORM都有类作为数据存储。 所以我怀疑是否应该继续使用类而不是结构。 那会是什么?

匿名类型的非只读替代方案

在C#中,匿名类型可以如下: method doStuff(){ var myVar = new { a = false, b = true } if (myVar.a) { // Do stuff } } 但是,以下内容将无法编译: method doStuff(){ var myVar = new { a = false, b = true } if (myVar.a) { myVar.b = true; } } 这是因为myVar的字段是只读的,无法分配。 似乎想要做一些像后者相当普遍的事情; 也许我见过的最好的解决方案就是在方法之外定义一个结构。 但是,真的没有办法让上面的块工作吗? 困扰我的原因是,myVar是这个字段的局部变量,所以它似乎只应该在使用它的方法中引用。 此外,需要将struct放在方法之外可以使对象的声明远离其使用,特别是在长方法中。 换句话说,有没有匿名类型的替代方法,这将允许我定义这样的“结构”(我意识到结构存在于C#中,必须在方法之外定义)而不使其只读? 如果不是,想要这样做是否存在根本性的错误,我应该采用不同的方法吗?