- ベストアンサー
C#のToString()メソッドについて
- C#のすべてのオブジェクトはToStringメソッドを継承しています。このメソッドは、オブジェクトの文字列形式を返します。
- 例えば、int型の変数はToStringメソッドを持ち、その変数の内容を文字列として返すことができます。
- オブジェクト指向の概念を理解すると、int型の変数が関数やメソッドを持つことが理解できます。クラスを学ぶとより詳しく理解できるでしょう。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こういうことは、言語によって違うので、他の言語の考えをそのまま持ってこようとすると混乱の元です。 > hensuu = 100; と入力したら、hensuu構造体のなんというメンバに格納されるのでしょう。 まず、C#では、「100」自体も「Int型の構造体」になっています。 C言語のintのような「単独の数値しか持たない型」というのがありません。 C言語で無理矢理書くなら struct integer { int value; などなど} hensuu, value100 ; ... asignInteger(&hensuu,&value100) ; /* hensuuの各メンバーを、value100と同等のものにする */ ということです。 そして、どのメンバーにどんな形で格納されるか、というのは、通常は考える必要はありません。 hensuu=100 ; としたら、hensuuが『100と値の整数』として振舞ってくれれば、中でどんな計算をしていようが関係無いのです。 そもそも、メンバー変数(フィールド)はMaxValue,MinValueという定数しか公開されていないのですから、内容を知りようがありません。 > また、余談ですが構造体、といった場合メソッドは持たないものではないでしょうか。 言語によって違います。 C#では、structもメソッドを持ちます。 C++でも、structはメソッドを持つことができます。 Cでは、そもそもクラスもメソッドもありません。
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
「ただのintで整数型の宣言もできると思う」ってのは, 具体的にはどういうことですか?
補足
たとえば、私の持っている「独習C#」によると、 int hensuu; と宣言した場合、integer型のhensuuという変数が作成されるとしか書いていません。 これがもし初心者が混乱しないように余計なことは書いていないだけでしょうか。 本当はint32構造体の宣言だったとした場合、 hensuu = 100; と入力したら、hensuu構造体のなんというメンバに格納されるのでしょう。 また、余談ですが構造体、といった場合メソッドは持たないものではないでしょうか。 メソッドとメンバ変数を持っているのですからint32はクラスと呼ぶのでは? よろしくお願いします。
- Wr5
- ベストアンサー率53% (2173/4061)
>これはオブジェクト指向の話なのでしょうか? そういう認識でよろしいかと思われます。 ちなみに、C#のint型は.NET FrameworkのSystem.Int32構造体になります。 そんなワケでSystem.Int32型のメソッドとかが使えることになります。 http://msdn.microsoft.com/ja-jp/library/system.int32%28v=vs.100%29.aspx
お礼
あ、int という宣言は変数の宣言でなく構造体を宣言しているのですね それで納得いたしました。ありがとうございます。
補足
でも、ただのintで整数型の宣言もできると思うのですが、その区別の方法などあるのでしょうか
お礼
短期間でとても勉強になりました。同時にすごい荒波に投げ出されたような・・・ また質問を見かけましたら是非よろしくお願いします。ありがとうございました。