.NET (CLR) における構造体の正体は、System.ValueType クラスを継承した値型のクラスです。
いや、そんなことはオブジェクト ブラウザを見ればすぐに察しがつくことなのですがw
ただし、クラスの定義で System.ValueType クラスを継承しようとすると、コンパイラに叱られます。(^^;)
構造体は暗黙的に System.ValueType だけを継承できるクラスというわけです。
下記の構造体は、
C#
namespace System.Drawing {
public struct Point {
private int _X;
public int X {
get {
return _X;
}
set {
_X = value;
}
}
private int _Y;
public int Y {
get {
return _Y;
}
set {
_Y = value;
}
}
}
}
次のようなクラスであると考えることができます。
sealed クラスになっているのは継承ができないからです。
C#
namespace System.Drawing
public sealed class Point : System.ValueType {
private int _X;
public int X {
get {
return _X;
}
set {
_X = value;
}
}
private int _Y;
public int Y {
get {
return _Y;
}
set {
_Y = value;
}
}
}
}
た、多分ね。(^^;)
関連記事