首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将这段Java代码移植到C#?

如何将这段Java代码移植到C#?
EN

Stack Overflow用户
提问于 2009-02-23 14:46:08
回答 2查看 796关注 0票数 0

我正在研究一个用Java语言实现的模式,并且有一些关于它如何与C#对齐(可以移植到)的问题。

Java:

代码语言:javascript
运行
AI代码解释
复制
class Foo
{
    private Class someClass;
    ...
}

class Bar
{
    private Field some Field;
}

首先,Class存储域对象的实例。看起来Java在类型上公开了反射方法,这些反射方法用于通过反射访问对象上的字段。什么类型在C#中是同义词?我是先使用object再使用MethodInfo,还是有更好的方法?

第二,Field是框架中的类型,通过使用:

代码语言:javascript
运行
AI代码解释
复制
someClass.getDeclaredField(fieldName)

在我应该使用的.NET框架中有没有类似的东西?

现在,我在Foo中创建了一个自定义对象来代替Class,并为Field创建了一个自定义对象。有没有更好的方法来做这件事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-02-23 14:59:36

您可以看看FieldInfo类型和GetField方法。

代码可能看起来像下面这些行中的内容:

代码语言:javascript
运行
AI代码解释
复制
class Foo
{
    public Type someClass;
    ...
}

class Bar
{
    private FieldInfo some_Field;

    public Assign(string fieldName)
    {
        Foo foo = new Foo();
        some_Field = foo.someClass.GetField(fieldName);
    }
}
票数 5
EN

Stack Overflow用户

发布于 2009-02-25 00:25:50

您也可以使用以下命令获取该字段的值:

代码语言:javascript
运行
AI代码解释
复制
 foo.GetType().GetField("name").GetValue(foo).ToString()

在这个例子中,我们假设类foo有一个名为"name“的字段。这有什么帮助呢?我们可以这样想:

代码语言:javascript
运行
AI代码解释
复制
private string getValueOfUnknownField(string fieldName)
{
    return(foo.GetType().GetField(fieldName).GetValue(foo).ToString());
}

即使您更改了类foo并向其中添加了新字段,也不需要更改getValueOfUnknownField方法。

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

https://stackoverflow.com/questions/579729

复制
相关文章

相似问题

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