C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[6]: List<T>はなぜClonableではないのでしょうか
(過去ログ 25 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 7 記事 (1 - 7 表示)] <<
0
>>
■11755
/ inTopicNo.1)
List<T>はなぜClonableではないのでしょうか
▼
■
□投稿者/ white_nuts
(1回)-(2007/12/21(Fri) 00:44:23)
分類:[C#]
はじめまして。
System.Collections.ArrayListはICloneableを実装しているのに、System.Collections.Generic.List<T> は、なぜICloneableを実装していないのでしょうか。
使用言語はC#2.0です。
引用返信
編集キー/
編集
■11756
/ inTopicNo.2)
Re[1]: List<T>はなぜClonableではないのでしょうか
▲
▼
■
□投稿者/
中博俊
(1226回)-(2007/12/21(Fri) 00:48:19)
なんで?別に必要ないと思うけど
というかICloneableはほぼ死んでると思うんですが・・・
引用返信
編集キー/
編集
■11759
/ inTopicNo.3)
Re[2]: List<T>はなぜClonableではないのでしょうか
▲
▼
■
□投稿者/ white_nuts
(2回)-(2007/12/21(Fri) 01:57:02)
■
No11756
(中博俊 さん) に返信
> なんで?別に必要ないと思うけど
> というかICloneableはほぼ死んでると思うんですが・・・
ありがとうございます。ICloneableは使わないものなんですか。
では、下記のようなコードで正しいでしょうか?
class A{
List<string> list = new List<string>();
public List<string> GetCopy()
{
List<string> copy = new List<string>();
foreach (string s in list )
{
copy.Add(s);
}
return copy;
}
}
引用返信
編集キー/
編集
■11763
/ inTopicNo.4)
Re[3]: List<T>はなぜClonableではないのでしょうか
▲
▼
■
□投稿者/ 渋木宏明(ひどり)
(606回)-(2007/12/21(Fri) 05:37:40)
> では、下記のようなコードで正しいでしょうか?
「正しい」が時と場合によって異なるので、「IColnable は死んだ」なんてタイトルのブログエントリを Microsoft の CLR team の人が書いたりするわけです。
string はよく使われるクラスですが、実はかなり特殊なふるまいをするクラスなので、それで用が足りるなら「正しい」と言っていいでしょう。
ちなみに、等価な動作は
List<string> list = new List<string>();
List<string> copy = new List<string>(list);
でも得られるはずです。
引用返信
編集キー/
編集
■11765
/ inTopicNo.5)
Re[4]: List<T>はなぜClonableではないのでしょうか
▲
▼
■
□投稿者/ white_nuts
(3回)-(2007/12/21(Fri) 09:32:14)
■
No11763
(渋木宏明(ひどり) さん) に返信
>>では、下記のようなコードで正しいでしょうか?
>
> 「正しい」が時と場合によって異なるので、「IColnable は死んだ」なんてタイトルのブログエントリを Microsoft の CLR team の人が書いたりするわけです。
>
読んでみたいです。よろしければ、その記事のURLを教えてください。
> string はよく使われるクラスですが、実はかなり特殊なふるまいをするクラスなので、それで用が足りるなら「正しい」と言っていいでしょう。
stringだと浅いコピーがないから、例としてはふさわしくなかった、ということでしょうか。
>
> ちなみに、等価な動作は
>
> List<string> list = new List<string>();
>
> List<string> copy = new List<string>(list);
>
> でも得られるはずです。
>
浅いコピーは
public List(IEnumerable<T> collection);
を使って行うということなんですね。
ありがとうございます。勉強になりました。
引用返信
編集キー/
編集
■11766
/ inTopicNo.6)
Re[5]: List<T>はなぜClonableではないのでしょうか
▲
▼
■
□投稿者/ 渋木宏明(ひどり)
(607回)-(2007/12/21(Fri) 09:50:34)
> 読んでみたいです。よろしければ、その記事のURLを教えてください。
http://blogs.msdn.com/brada/archive/2004/05/03/125427.aspx
> stringだと浅いコピーがないから、例としてはふさわしくなかった、ということでしょうか。
deep copy を考えなくてよいってのは、参照型としてはむしろ珍しいことだと思います>string
引用返信
編集キー/
編集
■11768
/ inTopicNo.7)
Re[6]: List<T>はなぜClonableではないのでしょうか
▲
▼
■
□投稿者/ white_nuts
(4回)-(2007/12/21(Fri) 10:07:47)
■
No11766
(渋木宏明(ひどり) さん) に返信
>>読んでみたいです。よろしければ、その記事のURLを教えてください。
>
>
http://blogs.msdn.com/brada/archive/2004/05/03/125427.aspx
ありがとうございました。ObsoletedってことでList<T>はICloneableを実装していないわけですね。
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-