将方法从java转换为C#.net

将方法从java转换为C#.net,c#,java,C#,Java,我有一个Java方法: public int getInt() { IntByReference ibr = new IntByReference(); if (CFLib.INSTANCE.CFNumberGetValue(this, 4, ibr)) return ibr.getValue(); return -1; } 以下是参考资料: 如何准确地为C#.net复制该值?其中4对应于枚举值kCFNumberSInt64Type。为什么会被压缩成(32位)整数?无论如何,它看起来像

我有一个Java方法:

public int getInt() {
IntByReference ibr = new IntByReference();
if (CFLib.INSTANCE.CFNumberGetValue(this, 4, ibr))
  return ibr.getValue();
return -1;  }
以下是参考资料:


如何准确地为C#.net复制该值?

其中4对应于枚举值
kCFNumberSInt64Type
。为什么会被压缩成(32位)整数?无论如何,它看起来像是
cfNumberTargetValue
想要一个
void*
(C++)作为它的第三个参数

public int getInt() {
    int i;
    if (CFLib.INSTANCE.CFNumberGetValue(this, kCFNumberSInt32Type, (IntPtr)i))
        return i;
    return -1;
}

我不知道是否需要对第一个参数执行任何操作,因为我不知道这是什么。

问题是,C#中没有CFLib,所以我必须找到另一种方法来执行。“这个”是一个值,它应该被转换,如果你不打算使用核心基础库,那么只需替换所有的CFNT引用和调用等价的C元素。在这种情况下,您的整个类(无论此是什么)都应该替换为int(或
long
)。