12/06/29 22:14:30.27
このスレッドは
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
関連スレ
ふらっとVisual C#,C♯,C#(初心者用) Part94
スレリンク(tech板)
C#, C♯, C#相談室 Part73
スレリンク(tech板)
2:デフォルトの名無しさん
12/06/29 22:20:44.10
乙
3:デフォルトの名無しさん
12/06/29 22:24:19.31
リロードが義務化されました
書き込む前にリロードしましょう
4:デフォルトの名無しさん
12/06/29 22:25:51.40
前スレ最後
ジェネリック型パラメータ間に継承関係があっても
ジェネリック型そのものに継承関係は引き継がれない
どうあがいても絶望だよ
5:デフォルトの名無しさん
12/06/29 22:27:43.49
A<T>ってするのは大げさすぎると感じる時は
大体の場合A<T>じゃなくて
必要なとこだけA.Method<T>(T item)的な形にすりゃいい
6:デフォルトの名無しさん
12/06/29 22:39:51.76
なにかやりたいことがあって、質問者のアプローチが間違っているのは分かるが
目的が分からんのでコメントしづらい
7:デフォルトの名無しさん
12/06/29 22:45:20.16
確かにアプローチが間違っているんだろうな。
コンテナクラスだろうが何だろうが、目的が正しければList<A<T>>ってなってる状態に何ら問題はないわけだし。
8:デフォルトの名無しさん
12/06/29 23:18:45.91
ジェネリック型にするのは、そのクラスを汎用化したいからだろ。
で、実際に使うときには T に入れる型は決まってるんだろうから、
A<[そのとき実際に使う型]> を継承したダミーのクラスを使うって手もあるような気がするだが、ダメかね。
9:デフォルトの名無しさん
12/06/29 23:20:16.72
using Hoge = A<Nantoka>とかしたほうが遥かにマシ
10:デフォルトの名無しさん
12/06/29 23:27:51.03
>>8
今回は駄目
11:デフォルトの名無しさん
12/06/29 23:42:40.02
1時間格闘してこうなったw
URLリンク(ideone.com)
12:デフォルトの名無しさん
12/06/29 23:43:04.84
HttpStatusCode列挙体の中身にステータスコードの数字がないのですが、変換とか出来ませんか?
13:デフォルトの名無しさん
12/06/29 23:45:04.86
intにキャストする
14:デフォルトの名無しさん
12/06/29 23:45:06.71
intにキャストしてみろォォォォォォォォォォォォォォォォォォォォォォォォォォォォォォォォ
15:デフォルトの名無しさん
12/06/29 23:45:24.76
2秒はセーフだよね
リロードしたよ!
16:デフォルトの名無しさん
12/06/29 23:47:03.65
>>15
はいアウトー
17:デフォルトの名無しさん
12/06/29 23:48:27.39
デデーン
18:デフォルトの名無しさん
12/06/29 23:49:26.23
ありがとうございますありがとうございます
助かりました
19:デフォルトの名無しさん
12/06/29 23:50:00.70
>>4
インターフェイス使って in か out つけろ。
20:デフォルトの名無しさん
12/06/29 23:51:17.02
>>前986
用途によるけどこれじゃ駄目なの?
URLリンク(ideone.com)
21:デフォルトの名無しさん
12/06/29 23:52:16.67
ContainerなのにTを受け入れないのが間違いなんだよ
22:デフォルトの名無しさん
12/06/29 23:54:51.93
助かってんのかなこれ
23:デフォルトの名無しさん
12/06/29 23:56:58.11
でも
>このクラスは単なるコンテナなのでTには興味がありません
とあるからList<A>を定義したい非ジェネリッククラスの中では
Aの何かに依存しても、Tに依存する処理は無いということじゃないかな
だとしたらその「Aの何か」は非ジェネリックなinterfaceに括り出せるはず
24:デフォルトの名無しさん
12/06/29 23:58:00.75
だからおbjct
25:デフォルトの名無しさん
12/06/30 00:12:22.62
ほんとにそれでいいような気がする。
26:デフォルトの名無しさん
12/06/30 00:12:35.89
class Container<T> where T : IHoge
{
public List<T> list = new List<T>();
}
interface IHoge{ ... }
interface IHoge<T> : IHoge
でいいわけ
使用者側はIHoge<T>を渡すから<T>の型情報をとれるし
Containerは<T>に依存しない
27:デフォルトの名無しさん
12/06/30 00:21:50.63
なんかわかりにくい気がするから書きなおすわ
class Container<T> where T : IHoge{ ... }
interface IHoge{ ... }
interface IHoge<T> : IHoge{ ... }
class Hoge<T> : IHoge<T>{ ... }
使用者側
var c = new Container<Hoge<ConcreteClass>>();
このようにすることで、使用者側はConcreteClassの型情報を知ることができ
ContainerはConcreteClassを知らないままでいることが出来る