我们Integer在JAVA上有课,但我在C#中找不到任何等同的课程?c#有任何等价物吗?如果没有,我如何Integer在c#中获得JAVA 类行为?
我为什么需要这个?
这是因为我正在尝试将JAVA代码迁移到c#代码.如果存在等效方式,则代码迁移将更容易.对于插件,我需要存储的引用,Integer我不认为我可以创建int或参考Int32.
C#具有统一的类型系统,因此int可以隐式地装入object引用.IntegerJava中存在的唯一原因是它可以转换为对象引用并存储在引用中以用于其他容器类.
由于C#可以在没有其他类型的情况下执行此操作,因此没有相应的类Integer.
如果不进行任何手动更改,对于任何类型的语言,代码迁移都不会立即可用。诸如此类之类的东西Integer根本就不存在(C#为何仍应如此,请参见递归答案),因此您必须自己做一些工作。最接近的等价于您所追求的是Int32或其别名int。但是,您当然可以编写自己的包装器类:
public class Integer
{
public int Value { get; set; }
public Integer() { }
public Integer( int value ) { Value = value; }
// Custom cast from "int":
public static implicit operator Integer( Int32 x ) { return new Integer( x ); }
// Custom cast to "int":
public static implicit operator Int32( Integer x ) { return x.Value; }
public override string ToString()
{
return string.Format( "Integer({0})", Value );
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16744 次 |
| 最近记录: |