C# 从java到c的转换#
我需要你的帮助。我正在从java转换到c#,我遇到了一个障碍。 我正在寻找java枚举类的c#等价物。我已经阅读了C#Enumeration文档,但找不到反映java版本的东西,特别是当涉及到我需要的太多方法时,这些方法就是枚举。hasMoreElements()和枚举.nextElement() 感谢您的帮助上的方法看起来与C#中的接口实现了类似的目的,但语义略有不同。例如,该方法实现了两个目的:它移动到下一个元素,并返回一个布尔值来告诉您是否有下一个要移动到的元素 但我发现,您不太可能真的需要这个接口。你能分享更多关于你想要达到的目标的细节吗?通常可以编写比直接转换更好的C代码 更新 啊!我的眼睛!好的,这首先是过时的(或者只是做得很差的)Java代码。而不是:C# 从java到c的转换#,c#,java,C#,Java,我需要你的帮助。我正在从java转换到c#,我遇到了一个障碍。 我正在寻找java枚举类的c#等价物。我已经阅读了C#Enumeration文档,但找不到反映java版本的东西,特别是当涉及到我需要的太多方法时,这些方法就是枚举。hasMoreElements()和枚举.nextElement() 感谢您的帮助上的方法看起来与C#中的接口实现了类似的目的,但语义略有不同。例如,该方法实现了两个目的:它移动到下一个元素,并返回一个布尔值来告诉您是否有下一个要移动到的元素 但我发现,您不太可能真的需
Enumeration objEnum = null;
for (objEnum=objStructureHT.keys(); objEnum.hasMoreElements();){
String strFieldName = (String)objEnum.nextElement();
应该是:
for (String strFieldName : objStructureHT.keys()){
这在C#to中可以很好地翻译(假设您使用的是字典
,用于对象结构
:
foreach (string strFieldName in objStructureHT.Keys){
但是,您获得键的唯一原因是您可以查找每个键并获得其值,对吗?因此有一个更好的方法:
foreach (var pair in objStructureHT){
string strFieldName = pair.Key;
string strDataType = pair.Value;
...
…这让人想知道为什么我们甚至使用字典
而不是带有字段名
和数据类型
属性的类。但这超出了这个问题的范围
这一切都有意义吗?基于,枚举有点不推荐使用,新的迭代器接口应该在Java中使用。另一方面,在C#中,从第一个版本开始就使用了一个名为IEnumerator的接口。后来,引入了通用IEnumerator。所有这些接口的作用都是实现
与Java版本不同,C#没有单独的hasMoreElements()和nextElement()方法,它们都统一到MoveNext()中方法,该方法在成功的迭代步骤中返回true,在没有更多元素可迭代时返回false。由于C#语言的2.0版存在关键字,它指示编译器生成接口的正确实现,对于简单情况非常有用
IEnumerator通常与接口和关键字一起使用
你可以阅读更多,而且
更新
好的,StriplingWarrior的答案结束了讨论。您需要这个吗?我不知道枚举类在java中做什么,但我猜您正在寻找一个IEnumerable
?发布具体的代码和您试图实现的目标。他可能指的是这个枚举
接口:(我也必须查一下,以前从未使用过)。你不能。C#和Java不一样6下载票??你是一个苛刻的人…@chinonsoakolam在你的问题中单击“编辑”,复制粘贴代码,然后单击“保存编辑”.祝福你,祝福你,祝福你只是为了确定,我应该跳过hastable,使用字典来代替它,对吗?@ChinonsoAkolam:是的。正如Java中的哈希表
已被弃用(你应该改用哈希表
),C中的哈希表
已过时(改用字典
)。谢谢。对于给您带来的不便,请原谅,我可以问另一个问题吗。因此,看看这个函数,它们使用了一个名为objResultSet的ResultSet对象,也是ResultSet类getTimestamp的方法之一。我检查了c#alternatives,找到了DataSet、Datareader和Recordset,但它们都没有任何与getTimestamp相镜像的内容注意。你知道我如何反映这一点吗?。谢谢你。+1无论如何,感谢你努力调查和解释这一点。:-)
foreach (var pair in objStructureHT){
string strFieldName = pair.Key;
string strDataType = pair.Value;
...