java vs c# struct

来源:互联网 发布:李宇春用什么音乐软件 编辑:程序博客网 时间:2024/05/17 16:54

struct


Java

 Java doesn't have struct.You may design a final class or a simple classto replace struct class Point{    public int x, y;    public Point(int x, int y) {        this.x = x;        this.y = y;    }}Point a = new Point(10, 10);Point b = a;a.x = 100;System.out.println(b.x);prints: 100Since Point is a reference type,b and a point to the same address,when a's value changed, b's value changed too.

C#

 A struct is a user-defined value type. It is declared in a very similar way to a class, except that it can't inherit from any class, nor can any class inherit from it.struct is not a reference type.struct Point{    public int x, y;    public Point(int x, int y) {        this.x = x;        this.y = y;    }}Point a = new Point(10, 10);Point b = a;a.x = 100;System.Console.WriteLine(b.x);prints: 10Since struct Point is a value type, not a reference type, a's value changeddoesn't involve b's value.
structs are sealed, lightweighted and more efficient than classes."Sealed" means they cannot be derived from or have any base class other thanSystem.ValueType, which is derived from Object.

get more about java vs C#:

1: http://www.javacamp.org/javavscsharp/

2: http://www.harding.edu/fmccown/java_csharp_comparison.html

原创粉丝点击