tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル クラスの場合は・・
投稿日: 2007/09/11(Tue) 10:53
投稿者
String型は不変で新たにインスタンスが生成されるということはわかりました!

それは「クラス内部のString型メンバ変数」でも「構造体内部のString型メンバ変数」でもおなじように新たな文字が代入されれば「新たなインスタンス」が生成されるということではないのでしょうか。
とすればクラス、構造体のどちらのString型変数FirstNameも新たに生成されるインスタンスを指し示すわけではないのですか・・・


> aPersonStruct2.FirstName ="Ann"とすると
> FirstNameの参照先は互いに”Ann"になるのではないのでしょうか・・?
なりません。先に書いたように、String 型は変更できないという点に注意してください。

そもそもFirstNameには「住所」みたいなものが格納されているとおもっているのですが・・
それは間違いなのでしょうか。
FirstName=「ヒープ上にある「値」がある住所」

 構造体型変数@.FirstName=構造体型変数A.FirstName
としても
 クラス型変数@.FirstName=クラス型変数A.FirstName
としても「同じ住所が格納される」ことになるので、
新たに
 構造体変数@.FirstName="新文字"

 クラス型変数@.FirstName="新文字"
と「文字列」が代入されたとして、新たな文字列インスタンスが生まれたとしてもその新たな文字列の住所(アドレス)が代入される」わけではないのですか・・


もしかすると
> aPersonStruct2=aPersonStruct
という構造体型の代入と
aPersonStruct2.FirstName=aPersonStruct.FirstName
という構造体型のメンバ変数の代入
の後に
aPersonStruct2.FirstName="新文字"
とすることには多少の違いがあるのでしょうか?

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。