Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对于没有函数但用于存储数据的类,正确的术语是什么_C#_Java_Naming - Fatal编程技术网

C# 对于没有函数但用于存储数据的类,正确的术语是什么

C# 对于没有函数但用于存储数据的类,正确的术语是什么,c#,java,naming,C#,Java,Naming,对于一个没有函数但用来存储数据的类,有什么专门的术语吗?其中一个例子是,当然,它仍然可以有方法。你的意思是这样的吗 public class Foo { public int a; public String b; } 我认为在Java中没有这样的(公共)类的特定术语。除了“坏习惯” 如果您的平台有一个像样的JIT编译器,那么就没有理由编写这样的代码。至少将字段设置为私有,并提供getter和/或setter。一个好的JIT编译器将优化简单的getter和setter,

对于一个没有函数但用来存储数据的类,有什么专门的术语吗?

其中一个例子是,当然,它仍然可以有方法。

你的意思是这样的吗

 public class Foo {
     public int a;
     public String b;
 }
我认为在Java中没有这样的(公共)类的特定术语。除了“坏习惯”

如果您的平台有一个像样的JIT编译器,那么就没有理由编写这样的代码。至少将字段设置为私有,并提供getter和/或setter。一个好的JIT编译器将优化简单的getter和setter,这样就不会有性能开销

关键的一点是,您不应该让这样的代码出现在暴露在单个编译单元之外的API中。为什么?它公开类的实现细节,并强制其他代码依赖它们


如果这个类是一个私有的内部类,那么上面的代码可能是合理的,不过如果字段是final,并且有一个构造函数,我会更舒服。尤其是当编译单元很大时。

没有标准术语来表示C,因为这种做法非常罕见。我把这样的类(或结构)称为“记录”,没有特别好的理由。

你的问题被标记为C#和Java,但我发现如果你称它们为结构(来自C),大多数人都能理解


<>注意,在C++中,结构也有函数,但我不认为这是习惯用法。

似乎是一个合适的术语。虽然比/,但从我所看到的来看,它似乎最符合你的标准。

我在这里看到了很多火焰战和一个高评级的错误答案。因此,我将附和我不完全正确但足够接近的答案

JavaBean是Java中一种特殊的数据封装对象。在C#中,我不完全知道名称,但它们确实有一个结构(而不是一个类),我习惯于用于类似类型的任务

您可能希望使用的另一个术语是实体。Java有“持久性实体”,它们实际上是带有注释的JavaBean。我的建议是与你选择使用的任何一种保持一致

如前所述,这不是一个完美的答案,但应该足够接近


我通常将它们称为容器类。也许是你要找的术语,因为它听起来不太实用。但他们往往有能手/二传手



实用类也是一个很好的术语。存储xyz数据以与bla

一起使用的实用程序类,我可以问一下为什么是-1吗?也不是downvoter,但这只是一个示例,不是此类类的整体术语。@MarkoTopolnik我对此做了一个通知。很抱歉,编辑后没有重新阅读。@MarkoTopolnik没问题,哥们儿)@MarkoTopolnik-你看到这个类上的“public”修饰符了吗?这就是为什么这是一个坏习惯!!!用于反序列化xml、json等的类@StephenC
var foo=JsonConvert.DeserializeObject(@“{”a”“:1”,“b”“:“x”})除了动态访问json属性之外,你知道更好的方法吗?@MarkoTopolnik-事实上,他可以。但我们无法读懂他的心思。@I4V语言不仅仅是编译器错误。比如说惯例。这是我的第一个答案,所以我期待着,但我能得到一些反馈吗?:)我认为你的回答很好。看看我删除的答案,它说的是同样的事情,而且也得到了否决票——当然没有任何解释。@juharr你的评论只是表明你自己的无知。没有人曾经说过“C++”这个词在C.中的意思是相同的,它叫做类比。它们被称为函数;)@我是一个爪哇人;你显然是一个C#guy。这是非常令人困惑的,因为OP同时标记了这两个元素,所以世界发生了冲突:)在Java中,术语“struct”是未定义的;实用程序类正好相反。拥有一个结构而不是一个没有方法只存储数据的类不是更好吗?关于是否使用类或结构的决定与是否存在方法完全无关。在某些上下文中,结构有许多方法是非常合适的,就像在某些上下文中,类只有数据一样。这是一个非因素。另外,顺便说一句,从技术上来说,这并不能回答被问到的问题。我不明白为什么这个问题被关闭了。如果有人不知道某件事,难道他不能向社区或专家提问吗……该死……以下是我投票的原因,原因很接近:
这个问题可能会引发辩论、争论、投票或长期讨论。共有11个答案,其中7个有一个或多个反对票,3个答案被删除,2个答案有10个或更多评论。我想说的是,已经有了相当多的辩论、争论和长时间的讨论。如果你觉得它关闭不当,你可以在“其他”选项下标记它以引起版主的注意,并要求它被认为是重新打开的,或者继续问。那么“礼仪课”呢?模糊的错误的