
開発環境はMicrofoft visual stdio 2005 で開発言語はC#を使い、Windousアプリケーションでプログラミングしているのですが
クラスのオブジェクトを代入すると、値渡しをしたいのに参照渡しになってしまい困っています。
ソースコードで説明すると
class Car
{
public int a;
}
Car bike = new Car();
Car bike_a = new Car();
Car bike_b = new Car();
bike_a = bike;
bike_b = bike;
bike_a.a = 10;
bike_b.a = 20;
この場合の出力結果(?)を
bike_a.a = 10
にしたいのです。
構造体を使う方法もあるのですが、このクラスは拡張したいので、できればクラスで使いたいのです。
なにかこの問題を解決するような方法はないでしょうか?
ちょと抽象的な質問で申し訳ないのですが、よければ御回答をお願いします。
No.1ベストアンサー
- 回答日時:
(C#の)オブジェクトは参照渡しなので、コピーはそのオブジェクトのメソッドを利用するというのが正しい作法。
C#だと、ICloneableインターフェイスのCloneメソッドを実装するのが良いデザインでしょう。
参考URLのところによると、Object.MemberwiseClone()なるメソッドが存在しているようですので、これを使って実装するのが便利そうですね。
参考URL:http://www.atmarkit.co.jp/fdotnet/csharp_abc/csh …
おお!
こんな関数があったのですね!
まだプログラミングを初めたばかりなので、いろいろ新鮮な事が学べました^^。
親切な御回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
CloseとDisposeの違い
Visual Basic(VBA)
-
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
-
4
有無、要否、賛否、是非、可否、当否…これらの言葉について
その他(教育・科学・学問)
-
5
IPアドレスを変更するプログラム
C言語・C++・C#
-
6
ピクチャーボックスの大きさに合わせて画像を表示
Visual Basic(VBA)
-
7
C# 別なフォームへ値を渡す (初心者です)
その他(プログラミング・Web制作)
-
8
vssver2.scc って消してもいいんですか?
Windows 8
-
9
【C#】別フォームも同時に閉じるには?
C言語・C++・C#
-
10
DataGridViewに空白がある場合はエラーにしたい
Visual Basic(VBA)
-
11
C# dataGridViewの値だけクリア
C言語・C++・C#
-
12
Webサイト アプリのコンパイル他
Microsoft ASP
-
13
C#において、同じインスタンスを何度もnewしてよいでしょうか。
その他(プログラミング・Web制作)
-
14
C#でフォームのオブジェクト名を変数名で指定
C言語・C++・C#
-
15
関数内の変数に<summary>コメントを付けたい
C言語・C++・C#
-
16
ASP.Net ラベルの内容をすぐに更新したい
Microsoft ASP
-
17
C#でbyte配列から画像を表示させたい
C言語・C++・C#
-
18
C# DataTableの行をソートしてDataGridViewに反映させたい
C言語・C++・C#
-
19
C# シリアル通信でデータ受信時の欠損について
C言語・C++・C#
-
20
Windows Formアプリからコンソールを呼び出して文字を出力させたい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
String型からlong型への変換は...
-
サーブレットコンテキストの意...
-
C#のクラスで値渡しをする
-
VB6.0にて、ワールド変換(ピク...
-
Vba ListViewの行挿入に関して...
-
VB.NETでのnothing の意義について
-
servletからjspへオブジェクト...
-
C#で親にイベントを投げる方法
-
mkdirsでフォルダが作成されない
-
GridViewに行追加するには?
-
JSPでのArrayListの表示につい...
-
C# トランザクション処理
-
VB.netでメソッドからコントロ...
-
VB2005でADDとINSERTの違いは?
-
ピクチャーボックスに点を打つ...
-
中学のクラス数
-
「タイプ初期化子が例外をスロ...
-
ヒグマを撃退
-
0歳児の指しゃぶりに関して
-
C#において、同じインスタンス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サーブレットコンテキストの意...
-
エクセルVBA 画像を貼り付ける...
-
Excel VBA 定数にオブジェクト...
-
servletからjspへオブジェクト...
-
VB.netでメソッドからコントロ...
-
VB.NETでのnothing の意義について
-
getParameter()について
-
VBAでの[]
-
C#で親にイベントを投げる方法
-
JSPでのArrayListの表示につい...
-
C#のクラスで値渡しをする
-
MessageBox.Show(Me,…の「Me」...
-
ピクチャーボックスに点を打つ...
-
String型からlong型への変換は...
-
Vba ListViewの行挿入に関して...
-
ADOのOPENで実行時エラー
-
javaで、、、
-
Javaでブラウザ判定
-
System.Collections.SortedList
-
Dispose()は、どんな時に使うの...
おすすめ情報