
開発環境は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も見ています
-
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
CloseとDisposeの違い
Visual Basic(VBA)
-
C# シリアル通信でデータ受信時の欠損について
C言語・C++・C#
-
-
4
有無、要否、賛否、是非、可否、当否…これらの言葉について
その他(教育・科学・学問)
-
5
VisualStudioのプロジェクトリソースファイル削除
Visual Basic(VBA)
-
6
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
7
C#を用いて描画する四角形の角を丸くする方法
C言語・C++・C#
-
8
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
9
例外処理のフローチャートの記述方法
C言語・C++・C#
-
10
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
11
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
12
オラクルではできるのにSQLSERVERではサブクエリーで複数キーを指定できない?
SQL Server
-
13
C# 別なフォームへ値を渡す (初心者です)
その他(プログラミング・Web制作)
-
14
同じソリューション内の別のプロジェクトのメソッド呼び出し
C言語・C++・C#
-
15
C#において、同じインスタンスを何度もnewしてよいでしょうか。
その他(プログラミング・Web制作)
-
16
C#でのpngからbmpへの変換について
C言語・C++・C#
-
17
関数内の変数に<summary>コメントを付けたい
C言語・C++・C#
-
18
Webサイト アプリのコンパイル他
Microsoft ASP
-
19
C# try-catch でcatchに飛ばす方法
C言語・C++・C#
-
20
どんなプログラムを書いても指定されたファイルが見つかりません。と出てきます。どうやったら解決しますか
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA 画像を貼り付ける...
-
C#のクラスで値渡しをする
-
VB.netでメソッドからコントロ...
-
C#のXmlDocumentについて
-
VBSのGetFolderメソッドについ...
-
サーブレットコンテキストの意...
-
Excel VBA 定数にオブジェクト...
-
C#で親にイベントを投げる方法
-
UTF-8のテキストファイルを開く...
-
VBA Workbooks.open
-
ピクチャーボックスに点を打つ...
-
VBAでの[]
-
Vba ListViewの行挿入に関して...
-
SocketでXMLオブジェクトを送信...
-
VB.NETでのnothing の意義について
-
JSPでのArrayListの表示につい...
-
Javaのgcについて
-
JTableで値を右寄せ表示する方法
-
C++/CLIでの画像情報(RGB)の取得
-
javaで、、、
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA 画像を貼り付ける...
-
Excel VBA 定数にオブジェクト...
-
VB.netでメソッドからコントロ...
-
サーブレットコンテキストの意...
-
VBAでの[]
-
Vba ListViewの行挿入に関して...
-
C#のクラスで値渡しをする
-
C#で親にイベントを投げる方法
-
VB.NETでのnothing の意義について
-
javaで、、、
-
Javaでブラウザ判定
-
System.Collections.SortedList
-
VB2005でADDとINSERTの違いは?
-
servletからjspへオブジェクト...
-
mkdirsでフォルダが作成されない
-
String型からlong型への変換は...
-
JSPでのArrayListの表示につい...
-
UTF-8のテキストファイルを開く...
-
エクセルVBA/SpecialCellsで特...
-
PrintFormを使用してのプリント
おすすめ情報