
開発環境は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も見ています
-
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
CloseとDisposeの違い
Visual Basic(VBA)
-
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
-
4
有無、要否、賛否、是非、可否、当否…これらの言葉について
その他(教育・科学・学問)
-
5
IPアドレスを変更するプログラム
C言語・C++・C#
-
6
C# 別なフォームへ値を渡す (初心者です)
その他(プログラミング・Web制作)
-
7
DataGridViewに空白がある場合はエラーにしたい
Visual Basic(VBA)
-
8
C#でフォームのオブジェクト名を変数名で指定
C言語・C++・C#
-
9
ASP.Net ラベルの内容をすぐに更新したい
Microsoft ASP
-
10
関数内の変数に<summary>コメントを付けたい
C言語・C++・C#
-
11
C#において、同じインスタンスを何度もnewしてよいでしょうか。
その他(プログラミング・Web制作)
-
12
C# シリアル通信でデータ受信時の欠損について
C言語・C++・C#
-
13
C# dataGridViewの値だけクリア
C言語・C++・C#
-
14
Webサイト アプリのコンパイル他
Microsoft ASP
-
15
C#でbyte配列から画像を表示させたい
C言語・C++・C#
-
16
C# DataTableの行をソートしてDataGridViewに反映させたい
C言語・C++・C#
-
17
Windows Formアプリからコンソールを呼び出して文字を出力させたい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サーブレットコンテキストの意...
-
GridViewに行追加するには?
-
VB.NETでのnothing の意義について
-
String型からlong型への変換は...
-
VB2005でADDとINSERTの違いは?
-
ピクチャーボックスに点を打つ...
-
VBAでの[]
-
drawStringの座標について
-
「タイプ初期化子が例外をスロ...
-
eclipse-Tomcatでのデバッグに...
-
関数内の変数に<summary>コメン...
-
エクセルVBAで、条件に一致する...
-
中学のクラス数
-
javascriptからjavaを呼び出したい
-
【sendkeysメソッドが動かずに...
-
Excelで =EMBED("Acrobat Docu...
-
引数で日付を2つ与え、その間の...
-
JavaScriptからJAVAクラスを呼...
-
UMLのクラス図はmain()も含むん...
-
リフレクション
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dispose()は、どんな時に使うの...
-
VB.NETでのnothing の意義について
-
サーブレットコンテキストの意...
-
エクセルVBA 画像を貼り付ける...
-
Excel VBA 定数にオブジェクト...
-
VB.netでメソッドからコントロ...
-
servletからjspへオブジェクト...
-
ピクチャーボックスに点を打つ...
-
C#で親にイベントを投げる方法
-
VB6.0にて、ワールド変換(ピク...
-
VBAでの[]
-
C#のクラスで値渡しをする
-
JSPでのArrayListの表示につい...
-
Vba ListViewの行挿入に関して...
-
String型からlong型への変換は...
-
Javaでブラウザ判定
-
[ASP.NET]DropDownListのDB連携...
-
getHeigth,getWidthについて
-
Objectクラスのオブジェクトを...
-
エクセルVBA/SpecialCellsで特...
おすすめ情報