じゃんぬねっと日誌

ネタと雑記と時々プログラミング

目次

Blog 利用状況

ニュース

不況すぎる件。

スポンサードリンク

運営サイト

  • C# と VB.NET の入門サイト

書庫

構造体の正体は ValueType を継承したクラス

.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;
            }
        }
    }
}

た、多分ね。(^^;)

関連記事

投稿日時 : 2005年12月24日 21:32

コメントを追加

# re: 構造体の正体は ValueType を継承したクラス 2005/12/25 16:10 りばてぃ

System.TypeのIsValueTypeとかIsEnumプロパティとかのことを考えるとなんか微妙な気もしますが、こんな感じかなって捉える分にはいいかもしれませんね。

#それはそうと、ディスク容量が足りませんエラーが・・・

# re: 構造体の正体は ValueType を継承したクラス 2005/12/25 17:19 じゃんぬ

> System.TypeのIsValueTypeとかIsEnumプロパティとかのことを考えると
> なんか微妙な気もしますが、こんな感じかなって捉える分にはいいかもしれませんね。

??? どのあたりが微妙なんですか?

> それはそうと、ディスク容量が足りませんエラーが・・・

最新の記事で出ていますね。
中さんには連絡済ですが、このコメントを投稿する時でさえも出てきちゃう... orz

# re: 構造体の正体は ValueType を継承したクラス 2005/12/25 17:38 りばてぃ

こう考えることもできるだろうってところで
思いっきり、クラスとして宣言されているので、
Type.IsClassがtrueになって、IsEnumとかがfalseになりそうに感じちゃうという感覚の問題なんで
あんまり深く考えなくてもいいですよ(^_^;)

# re: 構造体の正体は ValueType を継承したクラス 2005/12/25 19:15 じゃんぬ

まあ、内部の事情による広義のクラスと、
外部から見れる狭義のクラスは別と見てやってください。

# 中さん乙。
# 直ったみたいッスよん。

タイトル  
名前  
URL
コメント