ふらっとVisual C#,C♯,C#(初心者用) Part97

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドは
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

関連スレ
ふらっとVisual C#,C♯,C#(初心者用) Part96
http://toro.2ch.net/test/read.cgi/tech/1344151764/
C#, C♯, C#相談室 Part75
http://toro.2ch.net/test/read.cgi/tech/1346940693/
2デフォルトの名無しさん:2012/09/11(火) 11:54:06.25
ん?ミスった?
3デフォルトの名無しさん:2012/09/11(火) 11:54:16.85
問題なかったわ
4デフォルトの名無しさん:2012/09/11(火) 12:04:41.14
5デフォルトの名無しさん:2012/09/11(火) 14:07:48.90
仕事で急に投げつけられたから
取りあえずソースを眺めてたら

 public static DateTime? getDate(int Ymd)

なんて関数が作ってあったんだけど
?ついた型指定ってどういう意味なの?
6デフォルトの名無しさん:2012/09/11(火) 14:14:59.93
>>5
Nullable<T>
値型にnull突っ込める
7デフォルトの名無しさん:2012/09/11(火) 14:24:44.54
なるほど、実際の型を明示しつつObject的な返し方ができるんだ
ありがとう
8デフォルトの名無しさん:2012/09/11(火) 14:26:34.91
>>6
そういうのはなんていう名称なんだろ
[ ]で指定するのとかあるよね
調べる際に困るw
9デフォルトの名無しさん:2012/09/11(火) 14:53:07.12
言語仕様を把握しておくしかないと思う
http://msdn.microsoft.com/ja-jp/library/67ef8sbd(v=vs.110)
10デフォルトの名無しさん:2012/09/11(火) 15:54:55.46
C#つかったことないのですが、Webサーバーで一部モジュールを更新した場合には
phpのようにモジュールを上書きするだけでサーバーの再起動なく反映できますか?
11デフォルトの名無しさん:2012/09/11(火) 16:00:29.98
>>6
null許容型のことか
何もかもがググれないと記号ばかりとRubyがボロクソ言われてたのを思い出したw
12デフォルトの名無しさん:2012/09/11(火) 16:01:13.27
サルでもわかる entity framework 徹底入門的な書籍はありませんか?
13デフォルトの名無しさん:2012/09/11(火) 16:02:53.92
サンプルでusingが示されていない場合にみなさんどうやってググってますか?
14デフォルトの名無しさん:2012/09/11(火) 16:05:12.58
【消しゴム】MONOを使ってみるスレ4【じゃない】
http://toro.2ch.net/test/read.cgi/tech/1329023778/
【C#, C♯, C#】 MonoMac 【MonoDevelop】
http://anago.2ch.net/test/read.cgi/mac/1291602001/
【3Dゲームエンジン】Unity総合スレッド16
http://toro.2ch.net/test/read.cgi/gamedev/1345593861/
ASP.NET MVC
http://kohada.2ch.net/test/read.cgi/php/1331013877/
【質問】ASP.NETスレ Part7【雑談】
http://kohada.2ch.net/test/read.cgi/php/1343282128/
15デフォルトの名無しさん:2012/09/11(火) 16:07:37.22
>>10
余裕で
16デフォルトの名無しさん:2012/09/11(火) 16:34:34.06
質問です。

クラスライブラリを作成するに当たってある条件でメソッドを使えない
ようにしたいのですがどの様にすればよいでしょうか?

具体的にはConditional属性を付けたような動きにしたいです。
現在はメソッドの中でその条件を見てreturnしているのですが、
そもそもその条件はライブラリ呼び出し後から変更することが
ないので、その条件下ではメソッド自体をスキップしてほしいのです。

良い案ありませんでしょうか?
17デフォルトの名無しさん:2012/09/11(火) 16:58:27.97
>>16
普通にifで分岐しろ
それくらい誤差だ誤差
いろんなメソッドでその条件を見ててあんまりにも分岐が多くなるようなら
ポリモーフィズムを使ってもいい
18デフォルトの名無しさん:2012/09/11(火) 17:11:50.79
実行時にソースコードをコンパイルするとか
一旦逆アセンブルして編集して再アセンブルするとか
そういうアホみたいな方法は思いつくけど、
その手間や実行時オーバーヘッドに見合った効果は絶対に得られないと断言できる
19デフォルトの名無しさん:2012/09/11(火) 17:11:56.38
EntityFrameworkってどうよ?
20デフォルトの名無しさん:2012/09/11(火) 17:17:58.43
>>16
やらないと思うけど delegateで
http://ideone.com/wfj5f
21デフォルトの名無しさん:2012/09/11(火) 17:19:28.60
ASP.NETだとWeb.config/Web.Release.configみたいな感じできるようですが、
App.configで同じことできないのでしょうか?
22デフォルトの名無しさん:2012/09/11(火) 17:22:37.83
固定の条件分岐はデリゲートやクラス継承使ってポリモーフィズムするのが綺麗だけど
目的は決して速度ではないぞ。
確実にifの方が速い。どっちにしろ普通は誤差レベルだけど。
23デフォルトの名無しさん:2012/09/11(火) 17:26:21.37
>>21
そりゃASP.NETは実行時にコンパイルするからな
実行時コンパイルやりたきゃやってもいいがクライアントだと確実に>>18
24デフォルトの名無しさん:2012/09/11(火) 18:35:27.33
まともなO/Rマッパーってありますか?
25デフォルトの名無しさん:2012/09/11(火) 18:40:18.95
ないよ
26デフォルトの名無しさん:2012/09/11(火) 18:40:28.48
27デフォルトの名無しさん:2012/09/11(火) 18:41:50.09
まともなのというならEFかNHibernateになるな
Dapperがまともとかアホか
28デフォルトの名無しさん:2012/09/11(火) 18:48:20.68
EFもHibernateも中途半端な知識で増えるワカメのようなDB相手だと無残なことにしかならんかった。
Dapperでクラスにマッピングして、リレーションはそのクラスの中でプロパティとして実装が最善手な気がしている。

素人のオレオレな実装方法なので良いか悪いかは知らん。

class Hage {
public int Id { get; set; }
public Hage Parent {
get {
// dapper.Query<Hage>("select ...")みたいな感じ
}
}
}
29デフォルトの名無しさん:2012/09/11(火) 18:50:15.62
Dapperはリレーションに関知しないんだからORM名乗るなよ
object-recordマッピングとかobject-rowマッピングとでも呼ぶべき
30デフォルトの名無しさん:2012/09/11(火) 18:52:06.07
EFはモデル編集画面上でユニークキーの貼り方が分からなくて積んだ
未だにわからない
どうやんの?
31デフォルトの名無しさん:2012/09/11(火) 18:53:28.90
NHはスキーマに修正が入ったときのどうしていいのかわからなくて積んだ
SchemaExportとかいうメソッドがあったから叩いてみたらDROP/CREATE TABLEが走って全データ消えてフイタ
未だにわからない
どうやんの?
32デフォルトの名無しさん:2012/09/11(火) 18:54:11.45
ORMってクソじゃね?
.NET用のは特に
33デフォルトの名無しさん:2012/09/11(火) 18:57:17.02
なにをいまさら
34デフォルトの名無しさん:2012/09/11(火) 19:04:03.38
かと言ってExecuteReaderとかありえないだろ
35デフォルトの名無しさん:2012/09/11(火) 19:11:19.17
.NETって選択肢がねえや
すまんな
36デフォルトの名無しさん:2012/09/11(火) 19:14:54.74
Dapperは複合プライマリーキーの貼り方がわからなくて積んだ
未だにわからない
どうやんの?
37デフォルトの名無しさん:2012/09/11(火) 19:34:00.35
確かにMVVMやデザインパターン意識しだしてから開発効率が落ちたな
Form1にザクザク書いてた頃の方が目的のツール早く作れてた
38デフォルトの名無しさん:2012/09/11(火) 19:35:20.14
でもそういうツールを後で修正したいって時が困る
結局ゼロから作りなおしたほうが早いんじゃないかと思えてくるんだよね
39デフォルトの名無しさん:2012/09/11(火) 19:42:11.04
そうかなあ
40デフォルトの名無しさん:2012/09/11(火) 20:02:38.76
サクッと作ってからコード整理を兼ねてパターンに置き直し
ツールが動いてから見えてくることもあるしね
41デフォルトの名無しさん:2012/09/11(火) 20:05:57.00
なるほど
42デフォルトの名無しさん:2012/09/11(火) 20:17:57.23
へえ
43デフォルトの名無しさん:2012/09/11(火) 20:32:55.06
ご名答!
44デフォルトの名無しさん:2012/09/11(火) 21:48:38.54
MSChartの質問は、ここでよいか?
45デフォルトの名無しさん:2012/09/11(火) 22:03:44.86
イベントハンドラに、すでに特定のイベントが
追加されてるかどうかを見分ける方法はありますか?

もし同じイベントを2回足したらどうなりますか?
46デフォルトの名無しさん:2012/09/11(火) 22:11:22.39
> イベントハンドラに、すでに特定のイベントが
> 追加されてるかどうかを見分ける方法はありますか?
イベントに特定のイベントハンドラが、じゃねえの?
それなら外部からでは判断できない

> もし同じイベントを2回足したらどうなりますか?
イベントハンドラを二回足したら当然二回呼び出される(普通のイベントなら)
47デフォルトの名無しさん:2012/09/11(火) 22:23:54.75
IISって接続が発生するたびに、スレッドが作られるんですか?
singletonを作ったらば、そのオブジェクトはIISでユニークな存在になりますか
48デフォルトの名無しさん:2012/09/11(火) 22:45:26.78
 ////////, ''"    ヽミ川川
 |//////, '"       ',川川 えっ!何この包茎ぺニスと悪臭・・・
 川/////, '",,,,,,,,,,,,,,,,    r''"',川||
 川f 川f´           ,ィ::ラ',川  
 川ヘ  |    弋て::>     ̄  ',リ
  川 ヘ.__           ヽ /7!  ごめん…
  川川 ヘ     _,. '-‐''"´y'  //
   川川リヘ , '´   __,,,/  / /    ちょと…まじで気持ち悪い!
   川川川|/   '"´   , '´ /||
   川川川|           /川  (都内在住 22歳 OL)
49デフォルトの名無しさん:2012/09/11(火) 22:53:52.41
IIS以外でもasp.netってつかえんの?
50デフォルトの名無しさん:2012/09/11(火) 22:59:35.59
Web魚拓のようなものを作っているのですが、EntityFrameworkでURLを主キーにしたテーブルを作ろうとしたら「長すぎる」と怒られたんですが、どのように実装するのがよいのでしょうか?
正直、データベースの知識はあまりありません。
51デフォルトの名無しさん:2012/09/11(火) 23:01:45.49
>>45
ハンドラーを一度削除してから追加すればいい
52デフォルトの名無しさん:2012/09/11(火) 23:03:48.69
>>50
ハッシュにしとけ
53デフォルトの名無しさん:2012/09/11(火) 23:28:44.99
>>44もちろん。
>>49もちろん。
54デフォルトの名無しさん:2012/09/11(火) 23:54:45.20
>>36
Dapperにキーなんてものはない。
テーブル作るときもupdateするときもSQLを手書きするんだし
リレーションにも直接対応してないんだから。
Dapperの仕事は、クエリの結果をオブジェクトに代入することと
オブジェクトをクエリのパラメータに代入することだけ。複合主キーが使いたければそういうSQLを書く。
55デフォルトの名無しさん:2012/09/12(水) 05:55:47.44
>>51
追加されてないハンドラーを削除するのはエラーや例外にならないのですか?
56デフォルトの名無しさん:2012/09/12(水) 06:54:21.73
>>55
内部的にDelegate.Removeを使っているはずなので問題ない
57デフォルトの名無しさん:2012/09/12(水) 14:02:13.75
未使用メソッドを検索する方法ありますか?
使わなくなったゴミがたくさんあるんだけど
デリゲートとかの関係で無理かな?
58デフォルトの名無しさん:2012/09/12(水) 14:06:52.77
>>57
有料ツールならできるかもしれないけどなあ・・・

未使用メソッドを消したいクラスや検査対象のメソッドがそれほど数がないのなら
メソッドの頭で通過したというマーカーログを残すような簡単な仕組を入れて
走らしてみれば?
ログが無いのが使ってない証拠
59デフォルトの名無しさん:2012/09/12(水) 14:15:36.50
fxcopで調べてくれるよ
ただしpublicやprotectedなものについては外部から呼ばれる可能性があるから判断不能
デリゲートは最終的にどこかで使われるから問題ないけど
リフレクションによってのみ使われるものは判断不能
60デフォルトの名無しさん:2012/09/12(水) 15:07:10.59
fxcopで試してみます
ありがとう
61デフォルトの名無しさん:2012/09/12(水) 15:49:14.47
>>56
イベントにnullを入れてクリーンアップするのはおk?
62デフォルトの名無しさん:2012/09/12(水) 15:50:31.16
>>61
聞く前にやってみたか?
やってみてるならそんな発言はでないはずだが
63デフォルトの名無しさん:2012/09/12(水) 17:46:34.46
コンソールアプリで簡易GUIみたいのを作りたいのですが、その手のライブラリってありますか?
64デフォルトの名無しさん:2012/09/12(水) 17:56:45.01
GUI使えないの?
65デフォルトの名無しさん:2012/09/12(水) 17:57:48.93
66デフォルトの名無しさん:2012/09/12(水) 18:08:06.13
>>63
win32API使えばウインドウに対して干渉できるみたいなのでグラフィックも可能なんだろうけどさ・・・
http://www.atmarkit.co.jp/fdotnet/dotnettips/896conclosebtn/conclosebtn.html

なんかいろいろ方針が間違ってね?
67uy:2012/09/12(水) 18:18:29.76
思ったけど
俺の初めての言語がC++2009なんだが
今のCは使いやすくなってんの?
RUBYしか使ってないけど
68デフォルトの名無しさん:2012/09/12(水) 18:18:53.51
すれ違い
69デフォルトの名無しさん:2012/09/12(水) 18:32:12.55
>>64
はい。

>>65
そういうのです。

>>66
グラフィックは使わないです。
70デフォルトの名無しさん:2012/09/12(水) 18:46:15.52
具体的にはこういうのを作ろうと思ってます。
http://upload.wikimedia.org/wikipedia/vi/6/64/Turbo_Pascal_60_screenshot.gif
71デフォルトの名無しさん:2012/09/12(水) 18:46:45.32
このuyってやつなんかいろんなところにいるな
72デフォルトの名無しさん:2012/09/12(水) 18:49:13.59
>>70
さっきぐぐったら海外のフォーラムにそういうのをやってる人がいたな
まあ自分でやってもいいんだろうけど
73デフォルトの名無しさん:2012/09/12(水) 18:51:25.31
で、C#はどうせGUIが使える環境でしか動かないのに
わざわざキャラクタベースで作る理由は?
JavaだとCUIオンリーの環境でも使われるからそういうライブラリもあるけど
C#でそんなもの何の意味もないでしょ
74デフォルトの名無しさん:2012/09/12(水) 18:54:57.06
…はぁ?
75デフォルトの名無しさん:2012/09/12(水) 19:52:11.38
まぁ非PGから見れば、GUIアプリだけがソフトウェアだよね
76デフォルトの名無しさん:2012/09/12(水) 19:53:34.58
>>70
curses
77デフォルトの名無しさん:2012/09/12(水) 19:57:04.22
Midnight Commanderをmonoに移植してやったらイカザが喜ぶんじゃないか
78デフォルトの名無しさん:2012/09/12(水) 20:13:23.53
全く横だけどCUIも面白そうだな
ちょっとさがしてみるわー
79デフォルトの名無しさん:2012/09/12(水) 20:19:39.62
どこかで見た気がするんだが思い出せんな -> CUIライブラリ
80デフォルトの名無しさん:2012/09/12(水) 20:23:57.39
>>75
はい
8172:2012/09/12(水) 20:25:46.02
82デフォルトの名無しさん:2012/09/12(水) 21:13:02.62
WinFormで、ツールチップを設定したComboBoxの▼ボタンを押すと、以降、ツールチップが表示されなくなる
ちなみに他のコントロールのツールチップを表示するとまた表示されるようになる
※発生環境はWinXP (Win7では発生しない)

何かうまい対策とかある?
83デフォルトの名無しさん:2012/09/12(水) 21:14:09.26
○分ちょうどのときにある処理を実行したくて下記のようなコードを書いてみたのですが、
10回に1回くらいの頻度で実行されないことがあります
これをちゃんと毎回実行されるように改善したいのですが、どうしたらいいでしょう


※ティックイベントのIntervalは1000
private void timer1_Tick(object sender, EventArgs e)
{
  if (DateTime.Now.Second != 0)
    return;

  //ここに○分ちょうどのときにやりたい処理
}
84デフォルトの名無しさん:2012/09/12(水) 21:23:54.81
DateTime? next = null;
private void timer1_Tick(object sender, EventArgs e)
{
  DateTime now = DateTime.Now;
  if(next == null){
    next = now.AddSeconds(-now.Second).AddMinutes(1);
  }
  if (now < next)
       return;
  next = next.AddMinutes(1);

  //ここに○分ちょうどのときにやりたい処理
}

//ここに
85デフォルトの名無しさん:2012/09/12(水) 21:33:17.84
next = next.Value.AddMinutes(1);
86デフォルトの名無しさん:2012/09/12(水) 21:46:50.47
>>84
確かに「0秒の時」よりこの方法の方がしっかりしてそうですね
しばらくこれで様子見してみます
ありがとうございました
87デフォルトの名無しさん:2012/09/12(水) 22:05:08.78
>>75
こういうのはキャラクタベースなだけでGUIの類だろ
88デフォルトの名無しさん:2012/09/12(水) 23:11:05.46
GUI風のCUIだろ
89デフォルトの名無しさん:2012/09/12(水) 23:15:43.70
GUIの"Graphical"にはビットマップに限るなんていう含意はないと思うが。
とっくに死語だけど、キャラクターグラフィックなんて言葉もあったな昔
90デフォルトの名無しさん:2012/09/12(水) 23:17:48.72
そこでCLI⊂CUI派
91デフォルトの名無しさん:2012/09/12(水) 23:20:11.89
少なくとも操作体系は完全にGUIと一緒なんだから
PG云々の文脈で出てくるべきものではないな
コマンドラインインターフェイスの方ならGUIがある今でも十分意味のあるものだけど
92デフォルトの名無しさん:2012/09/12(水) 23:30:06.47
なんかVS2012のExpressがダウンロード出来るみたいだな
async使いたい時はどれをダウンロードしたらいいんだ?
93デフォルトの名無しさん:2012/09/12(水) 23:32:07.15
>>87
>キャラクタベースなだけで
言葉そのまま Character-based User Interface じゃねーかw

>>90
CLI上でCLIですねわかります
94デフォルトの名無しさん:2012/09/12(水) 23:33:25.52
>>93
あくまで擬似GUIだよな
分類で言えばCUI
95デフォルトの名無しさん:2012/09/12(水) 23:36:10.83
GUIを自作って面白そうだな難しそうだけど
96デフォルトの名無しさん:2012/09/12(水) 23:38:57.51
難しくはないよ
めんどくさいだけ

OSが持ってるLine命令とか使ってウインドウになるようにシコシコ書いていくだけ
最初はその手の命令をアクセラレートする物をGPUが実装して・・・と進化しただけ
97デフォルトの名無しさん:2012/09/12(水) 23:55:17.30
webからファイルをダウンロードする方法を検索すると
Stream st = res.GetResponseStream();
StreamReader sr = new StreamReader(st, Encoding.GetEncoding("Shift-Jis"));
sr.ReadToEnd();
で一気にダウンロードするんじゃなくて
バッファでちょっとづつ読み込んでいるようなソースが多いんだけど何か意味があるんですか?
98デフォルトの名無しさん:2012/09/12(水) 23:58:19.01
そりゃネットだからな・・・
ファイルサイズが小さければいいけど大きい場合フリーズしたみたいになるぞ
99デフォルトの名無しさん:2012/09/13(木) 00:05:18.68
スレッド分けなきゃフリーズするのは一緒
ダウンロードと後処理を並行したほうが時間もメモリ使用量も少ないからだと思うが
100デフォルトの名無しさん:2012/09/13(木) 00:08:04.10
内部的にはウィンドウサイズごとに区切って送られてるから大した差はない
10197:2012/09/13(木) 00:28:31.37
回答さんくす
進歩状況を表示したい場合も細切れの方がいいのかもと思った
102デフォルトの名無しさん:2012/09/13(木) 00:35:23.10
MemoryCacheへのオブジェクトの入出力を速くしたいのですが
シリアライザを代替する方法などあるでしょうか。
例えばprotbuf-netを使用できるようにしたり、格納するオブジェクトは
ある程度固定されているので自前で実装する方法でも構いません。
参考になりそうなサイトなどあれば教えてください。
103デフォルトの名無しさん:2012/09/13(木) 00:40:21.46
>>102
ボトルネック探して改変するしか無いだろうに。
メモリに貯めるんだったら、ボトルネックはアルゴリズムが一番でかいと思うよ。
ある程度値が決まってるんだったら、全部列挙してIDまたはハッシュでやり取りするのがいいと思う。
負荷は全部メモリに行くから。
104デフォルトの名無しさん:2012/09/13(木) 12:04:26.12
失礼します。

OpenCVSharpで作成したAVI動画(コーデックはDIB)をVS2010のMedia Playerコントロールで読み込んでも再生出来ません。
(動画から画像を抽出する事などは出来ます)
標準のWindows Media Playerでは再生出来ます。

この場合、どこを見たら良いのでしょうか?
よろしくお願いします。
105デフォルトの名無しさん:2012/09/13(木) 12:08:33.19
VS2010のMediaPlayerコントロールって何? WPF? WMPのをCOM参照?
それで他の動画は再生できるの?
WMPのバージョンは?
106デフォルトの名無しさん:2012/09/13(木) 12:59:15.53
すいません、説明が足りませんでした。
VSのWindowsMediaPlayerコントロールはこれです。
http://dobon.net/vb/dotnet/programing/playmidifile.html

WMPは11と12で確認しました。
107デフォルトの名無しさん:2012/09/13(木) 14:22:07.84
別のaviは再生できるのかい?
108デフォルトの名無しさん:2012/09/13(木) 14:49:02.40
EntityFrameworkの主キーでStoreGeneratedPatternプロパティにComputedって設定した場合は、
自前のコードの中で主キーの値を計算するという認識であってますか?

その場合、自前のコードはどこに書くのでしょうか?
109106:2012/09/13(木) 15:17:48.79
>>107
はい、他のAVIは再生できます。
元々他の無圧縮AVIファイルから動画の一部を切り抜く為、
フレーム単位でコピって繋げているだけなのですが、
WindowsMediaPlayerコントロールでは表示出来なくなってしまいます。
110デフォルトの名無しさん:2012/09/13(木) 15:18:37.23
>>108
MSDNの解説見る限りそんな認識にはならないな
111デフォルトの名無しさん:2012/09/13(木) 15:59:46.79
(T_T)…
112デフォルトの名無しさん:2012/09/13(木) 17:39:22.85
>>110
まったくわかりません。。。
113デフォルトの名無しさん:2012/09/13(木) 22:21:36.71
WMPLib.WindowsMediaPlayerってストリーム放送のURIを頻繁に切り替えてplayしてるとOS巻き込んでフリーズするよね
OS再起動するしかなくなるからすごくまずいバグだと思うんだけど誰か回避方法知ってる?
114デフォルトの名無しさん:2012/09/13(木) 23:00:33.99
C#でそういう書き方するとVBみたいだからやめて//
115デフォルトの名無しさん:2012/09/14(金) 02:30:36.74
Windows Formからwebで動かしてみたいって理由だけでWPFで作り変えようとしてるんだけどたとえば今までsettings.xmlとかを作ってた場合ってどうすればいいんだろ。
116デフォルトの名無しさん:2012/09/14(金) 02:33:47.29
WPFのXBAPってダウンロードされたアプリがブラウザの枠を借りて動くだけで
別にWebで動くわけじゃないぞ?
ASP.NETにしとけ
117デフォルトの名無しさん:2012/09/14(金) 02:35:51.26
え、そうなの?
そこらへんよくわかってないんだけどhtmlみたいにブラウザが動かしてくれるのかと思った。
ASP.NETっての見てみるね、ありがとう。
118デフォルトの名無しさん:2012/09/14(金) 02:44:51.29
C#だけどC#じゃない、みたいな印象を受けた。
用途的にはそれこそJavaScriptでも使えよ、って言われそう。
119デフォルトの名無しさん:2012/09/14(金) 03:16:56.29
「独習C# 第3版」と「XAMLプログラミング WPFアプリケーションの概要と開発」を
読み終えたばかりの初心者です。これからWPFでちょっとしたツールから作り始めたいんですが、
スジのいいプログラマーになるために読んでおけって本があったら教えてください。
複雑なデータをクラスで表現する際の定石とか、C#4.0までの構文を反映した
デザインパターンなどを、実例やサンプルコードで学べるとかが理想です。
120デフォルトの名無しさん:2012/09/14(金) 03:47:50.98
そんな本はない
121デフォルトの名無しさん:2012/09/14(金) 09:02:46.17
良書は様々な言語に散らばっているので、本読んで腕の良いプログラマになりたければ読める言語を増やす
デザインパターンのような、どこの言語でも本質が変わらないような本は、コストの問題でわざわざ移植されない

プログラミング.NET Frameworkは読みましょう
あとエッセンシャルWPF
買う必要はないです
122デフォルトの名無しさん:2012/09/14(金) 09:06:55.52
>>113
OS巻き込んで、って時点でドライバとか疑うでしょ
123デフォルトの名無しさん:2012/09/14(金) 09:32:34.08
switch文で、各case内でローカル変数名がかぶるとおこられるのってなんで?
直すのめんどうだからブラケットでくくってるは
124デフォルトの名無しさん:2012/09/14(金) 10:35:10.82
>>118
JavaScriptとASP.NETは全然全く違うぞ
ASP.NETのC#コードは常にサーバーで動く
それにASP.NETで重要なのはビューよりも裏方を普通のC#で書けること

>>123
なんでも何も、C系言語では基本的に { } で括った範囲がローカル変数のスコープ
caseはただのラベル
125デフォルトの名無しさん:2012/09/14(金) 11:04:27.76
>>119
あえて言うならVisualC# 実践講座
126デフォルトの名無しさん:2012/09/14(金) 13:07:31.27
switchはいい加減構造化するべき
Javaなんかに比べればC#はCの変なしがらみをだいぶ捨ててるのにもったいない
わざわざbreak必須にしたりするくらいなら
switch (x) { case (1) { … } case (2, 3) … default … }
こんなんにすればいいのに
127デフォルトの名無しさん:2012/09/14(金) 13:31:50.60
今の
switch (x) { case 1: { … } case 2:case 3: … default … }
と殆ど変わらんじゃん
128デフォルトの名無しさん:2012/09/14(金) 13:34:02.15
break書くのがめんどうってだけじゃないの?
129デフォルトの名無しさん:2012/09/14(金) 13:37:41.10
>>127
ラベルで飛ぶっていう発想自体が前時代的でKY
On Error Gotoかよ
130デフォルトの名無しさん:2012/09/14(金) 13:50:15.90
goto便利だけどなw
13197:2012/09/14(金) 13:55:27.31
WinFormからWPFにソフトを移植したいんだけどデータ構造をどうすべきか悩んでいます
List<hoge1>.List<hoge2>
このようにListが入れ子構造になっているデータをTreeViewに表示しているんですが
これをWPFのTreeViewで双方向バインディングさせようとした場合
ObservableCollectionにする必要があるのですが、データ構造を変えてしまうと
このデータを使うあらゆるクラスで修正しないといけなくなると思うのですが
何かよい考えありますでしょうか?
132デフォルトの名無しさん:2012/09/14(金) 14:00:20.77
内部のデータを直接UIからいじるのは良くないと思う
データを持つ層はきっちり分離しておいて、ファサードを通して
UIに必要なデータを都度コピーして出し入れするっていう発想で作るのがいいよ
133デフォルトの名無しさん:2012/09/14(金) 14:14:06.65
基本的にGUIのデータはGUIで独自に持っといて、OKボタンとかでまとめて内部に反映させるのがいいよ
煩雑なようだけど実際その方がずっとやりやすい
13497:2012/09/14(金) 15:46:01.32
>>132
>>133
よくあるサンプルコードだと実データをそのままバインディングしたりしているけど
それだとだめだったんですね
どうやら間違った理解をしていたようです
GUI側にデータを持たせるというのは、コードビハインドでGUI用のコレクションを作るということでいいですか?
一応WinFormではコードビハインドにTreeNodeコレクションを作っていました
135デフォルトの名無しさん:2012/09/14(金) 18:24:03.43
逆じゃね
よくあるサンプルコードだと実データが無くてGUI用データだけなんでしょ
136デフォルトの名無しさん:2012/09/14(金) 19:24:54.37
AwaiterのContinuation何回も呼び出すと最初からやり直し出すんだな
不思議
137デフォルトの名無しさん:2012/09/14(金) 19:27:48.63
コンパイラ用って書いてあるじゃん
undocumented behaviorってやつだろ
138デフォルトの名無しさん:2012/09/14(金) 19:33:09.61
ああそうなのか
ありがとう
139デフォルトの名無しさん:2012/09/14(金) 19:39:05.12
いらないよ、お礼なんか
140デフォルトの名無しさん:2012/09/14(金) 19:42:32.00
そうかVS2012EE出たんだっけか
忘れてたわありがとう
141デフォルトの名無しさん:2012/09/14(金) 19:54:02.82
ExpressEditionでたの?!
142デフォルトの名無しさん:2012/09/14(金) 20:00:14.32
出たら困るのか?
143デフォルトの名無しさん:2012/09/14(金) 20:30:08.76
質問です。
GDI+とC#のgraphicsクラスの仕様は違うのでしょうか?

と言うのも、フルカラーPNG(32bitARGB)画像を重ねて表示するプログラムをC++からC#に移植したのですが、重ねる画像のアルファ値が保持されず、綺麗に合成されません。

対処方法、もしくは違うアプローチで画像を重ねる方法をご存じでしたら、回答よろしくお願い致します。
144デフォルトの名無しさん:2012/09/14(金) 20:31:27.93
ソースプリーズ
145デフォルトの名無しさん:2012/09/14(金) 20:37:40.27
>>144
ソースなければ答えられないバカは黙ってろ
146デフォルトの名無しさん:2012/09/14(金) 20:39:54.32
全否定きたw

普段からあちこちでgraphics関連のソースを書いて提供してるんだけどな

で結論から言えばできないはずがないんだがおそらく指定するべき項目を指定してないから
思ったように動いてないだけなんだろうけどソースがわからないとミスが指摘できないので出してみればって
言っただけ
147143:2012/09/14(金) 20:53:36.60
143です。

<C++>
Bitmap* m_pImgBack, m_pImgWork;
(上記2つはpng画像を読み込み済み)
CDC* pDC = GetDlgItem(IDC_IMAGE)->GetDC();
const HDC hDC = *pDC;
Graphics graphics(hDC);
//背景の表示
graphics.DrawImage(m_pImgBack, 0, 0, IMAGE_WIDTH, IMAGE_HEIGHT);
//透過処理を施して画像を重ねて表示
graphics.DrawImage(m_pImgWork,0,0,IMAGE_WIDTH,IMAGE_HEIGHT);

---

<C#>
(ImgWorkはBitmapクラス。png画像を読み込み済み)
Bitmap ImgBack = new Bitmap("back.png");
Graphics g = Graphics.FromImage(ImgBack);
g.DrawImage(ImgWork, 0, 0, IMAGE_WIDTH, IMAGE_HEIGH T);
//ピクチャーボックスに転送
this.picImage.Image = ImgBack;
-------

関係とは思いますが、CompositingQualityの設定では改善しませんでした。
148デフォルトの名無しさん:2012/09/14(金) 20:58:39.07
>>146
最初からそう言えよ
ソース晒したところで答え無い奴が多いからな
そんな手間を取りたくないんだよ
149デフォルトの名無しさん:2012/09/14(金) 21:02:22.68
何べんも聞き返す手間も取りたくねえんだよ鳥頭
150デフォルトの名無しさん:2012/09/14(金) 21:06:37.38
DrawImage二回してるのと一回しかしてないの
GraphicsのDisposeをしてるのとしてないので違いがあるんでないか
151デフォルトの名無しさん:2012/09/14(金) 21:09:12.60
PNG読み込んだときちゃんとARGBかPARGBになってるか
152デフォルトの名無しさん:2012/09/14(金) 21:19:53.72
失敗する理由がわからんなあ
http://ideone.com/DtBJN

読み込んでる画像フォーマットが片方アルファなしとかじゃないの?
http://www.dotup.org/uploda/www.dotup.org3421244.png
http://www.dotup.org/uploda/www.dotup.org3421247.png

名前変わってるけど上記画像をaaa.png bbb.pngに直して
デスクトップにおいて実行してみて

http://www.dotup.org/uploda/www.dotup.org3421257.png
153デフォルトの名無しさん:2012/09/14(金) 21:24:07.51
あのクソで有名なImageListクラスを介してるとか
154デフォルトの名無しさん:2012/09/14(金) 21:28:29.67
bmp1で読み込む方をアルファ抜きの24bitで保存して実行してみたけど問題なく合成される
逆をすれば当然bmp1が塗りつぶされる

ごく普通の動作

やっぱ自分は間違ってないと思ってるソース部分に罠があるはず

だからソース出せって言ってるのに
155デフォルトの名無しさん:2012/09/14(金) 21:36:31.73
>>153
あれって色深度がおかしくなったような記憶がある
156デフォルトの名無しさん:2012/09/14(金) 21:38:35.12
>>153
俺もそう思ったよ
ソースコードなんて無くても大抵それだと予測できる
ソースコード要求する奴は初心者
157デフォルトの名無しさん:2012/09/14(金) 21:41:00.97
うっざ
158デフォルトの名無しさん:2012/09/14(金) 21:42:48.00
>>145
>>156
有意義な3連休前日をお過ごしのようで
159デフォルトの名無しさん:2012/09/14(金) 21:46:56.76
今日は午後休にしたので3.5連休です
160デフォルトの名無しさん:2012/09/14(金) 21:51:54.39
へー、世間は三連休か…
161143:2012/09/14(金) 21:51:57.29
皆様ありがとうございます。

デバッガで確認したところ、重ねる画像は32bppARGBでしたが、
背景画像が24bppRGBになってることがわかりました。

アルファが適用されてないではなく丸められているようなので、
アルファつきで背景も読み込むようにして試してみます。

またご報告します。
162デフォルトの名無しさん:2012/09/14(金) 21:52:43.04
>>161
二度と来るなよ
163151:2012/09/14(金) 21:58:24.85
俺は知ってたよ
164デフォルトの名無しさん:2012/09/14(金) 21:58:32.14
とりあえず

IDほしい
165デフォルトの名無しさん:2012/09/14(金) 22:01:13.13
背景が24bitアルファなしでも重ねる方にアルファがあればちゃんと処理されるって
166143:2012/09/14(金) 22:33:47.12
申し訳ありません。
単純に読み込み画像がおかしかったのが原因でした。
ソースをいじることなく解決しました…

スレ汚し失礼しました。
167デフォルトの名無しさん:2012/09/14(金) 23:11:16.34
あごキックで許す
168デフォルトの名無しさん:2012/09/15(土) 07:21:13.98
スレッドをつくってそっちで新しいフォームをshowしても
表示されないのはなぜでしょうか?
UIはメインスレッドでしか動作しないのでしょうか?
169デフォルトの名無しさん:2012/09/15(土) 07:30:47.19
UIはUIスレッドで(つまり最初に動いてるWinFormと同じスレッド)

別に作った場合はこんな感じで
http://www.atmarkit.co.jp/fdotnet/dotnettips/312ctrlinvoke/ctrlinvoke.html
170デフォルトの名無しさん:2012/09/15(土) 07:33:25.61
単独のForm.Showは非ブロックなんでスコープを抜けると消える
スレッドの最初のFormはApplication.Runが必要

…だった気がする
171デフォルトの名無しさん:2012/09/15(土) 07:40:30.50
>>168
ループさせればできるよ
要はGUIを描画し続けるというのが必要
172デフォルトの名無しさん:2012/09/15(土) 07:50:21.06
おまいらおはよー
今日はたっぷり時間がかるので
いっぱい質問するから
いっぱい答えてね
173デフォルトの名無しさん:2012/09/15(土) 08:47:17.15
つまり

新しく作ったスレッドでFormの表示状態を維持するには
最初のFormはApplication.Run相当のループが必要。
それをしたくない場合は最初のFormはApplication.Run
の配下でForm.Showが行われるようにInvokeを使うと
174デフォルトの名無しさん:2012/09/15(土) 08:48:10.43
みすった

新しく作ったスレッドでFormの表示状態を維持するには
最初のFormのApplication.Run相当のループが必要。
それをしたくない場合は最初のFormのApplication.Run
の配下でForm.Showが行われるようにInvokeを使うと
175デフォルトの名無しさん:2012/09/15(土) 09:03:06.61
>>82 これまじで解決策ねーの?
176デフォルトの名無しさん:2012/09/15(土) 09:11:58.99
あと1年ちょっとで終わるOSを切り捨てる
177デフォルトの名無しさん:2012/09/15(土) 09:12:11.31
XP知らない世代なんで
178デフォルトの名無しさん:2012/09/15(土) 09:12:53.65
>Application.Run相当のループ
メッセージループね。
Application.Run/Form.ShowDialogで、
必要と判断されればループが開始される。

>それをしたくない場合は最初のFormのApplication.Run
>の配下でForm.Showが行われるようにInvokeを使うと
InvokeではそのFormを生成したスレッドで実行される。
新しく作ったスレッドでFormを生成していたらInvokeは無意味。

それとFormを表示する前に、Thread.SetApartment(STA)が必要。
あとWinFormのマルチスレッドGUIは厳密にはNG。
OpenFileDialog等COMを利用したコントロールにおいてマルチスレッドが保証されていない(らしい)。
179デフォルトの名無しさん:2012/09/15(土) 09:14:43.13
>>174
前者の用途なら改めてApplication.Runを呼べばいい…はず
180デフォルトの名無しさん:2012/09/15(土) 09:20:49.74
さっぱりわからないニダ
181デフォルトの名無しさん:2012/09/15(土) 09:22:23.36
わかんないアル
182デフォルトの名無しさん:2012/09/15(土) 09:24:23.89
public static void Main()
{
  var f = new Form();
  f.Click += (s, e) =>
  {
    Action a = () => Application.Run(new Form());
    a.BeginInvoke(ar => a.EndInvoke(ar), null);
  };
  Application.Run(f);
}
183デフォルトの名無しさん:2012/09/15(土) 09:25:08.34
というかそもそもFormアプリを作った場合はApplication.Runで最初にUIスレッド作って
Formの表示維持のためのループもやってくれてるんだから新しく内部で作るスレッドの中で
Formのインスタンス作ってShowするなって話だよ

UIに関連することはすべてInvokeでUIスレッドの中で呼び出し可能なメソッドに
まとめておいてそこで処理をさせる
184デフォルトの名無しさん:2012/09/15(土) 09:49:42.95
てか、フォームを別スレッドでやりたいのが目的じゃなくて
別スレッドで処理するものがあって、その結果をFormに表示させたいけど
めんどくせってことじゃないの?
普通別スレッドでFormが必要なんてことがあるわけがない
185デフォルトの名無しさん:2012/09/15(土) 09:59:55.41
メインフォームのリストビューを更新するとサブスレッドのUIがその間止まってしまうので
スレッドをわけたらどうかと思った次第です
186デフォルトの名無しさん:2012/09/15(土) 10:04:39.47
更新時間を短縮することにまず目を向けるべきだった
187デフォルトの名無しさん:2012/09/15(土) 10:08:11.53
>>185
なぜそれを最初に言わないのか?
あなたが問題視している部分と起因となった実際の問題をよく理解していないようですね

こういう問題解決能力のない知的障害者にはプログラミングは無理です
低学歴にはプログラミングは無理です
188デフォルトの名無しさん:2012/09/15(土) 10:09:57.46
妙な問題が出ている時は大抵アプローチがおかしいという経験則
189デフォルトの名無しさん:2012/09/15(土) 10:10:35.89
やはりリストビューをやめて独自リストビューを作成すべきでしょうか
190デフォルトの名無しさん:2012/09/15(土) 10:11:22.31
>>187
まあそんなもんだからあまり追い込んでも意味ないけどね

なので常にソースを出せと言ってる

変なことを言ってる場合は概ね何か基本が間違ってることが普通だし
191デフォルトの名無しさん:2012/09/15(土) 10:12:36.93
あなたが作っているソフトウェアの用件を知らないのにそんなことに答えられるわけがない

流れ的にあなたがリストビューで変な使い方をしている可能性も否定できない
192デフォルトの名無しさん:2012/09/15(土) 10:14:21.79
>>189
動きをざっくり説明しなよ

どれくらいのデータ件数をどれくらいの頻度で更新するから
listviewが固まるとかさ
193デフォルトの名無しさん:2012/09/15(土) 10:15:26.01
0.01秒も止まられると困ってしまいます
194デフォルトの名無しさん:2012/09/15(土) 10:15:38.79
あと仮想リストビューは検討したかとかBeginUpdateやEndUpdateを使用してみたかも付け加えて欲しい
195デフォルトの名無しさん:2012/09/15(土) 10:16:22.80
その0.01秒は何のために発生する要件だい
合理性はあるの?
196デフォルトの名無しさん:2012/09/15(土) 10:17:34.34
>>190
お前らそれがわかった上で質問に答えているだろw
もう笑えるんだよそれが
悪ノリはやめろw
197デフォルトの名無しさん:2012/09/15(土) 10:19:36.45
リストビューにアイテムを追加するときに一個づつやってるんだろうな
リストビューコレクションを作ってそれをAddRangeで追加してやれば
5000件あっても一瞬で表示される
あと、>>194
198デフォルトの名無しさん:2012/09/15(土) 10:19:48.23
>>196
だからめんどくさいけどヒアリングしながら応えてるじゃん

その過程で後だしで条件がでてくるのはもうわかってるから
199デフォルトの名無しさん:2012/09/15(土) 10:19:59.45
リストビューは100ミリ秒毎に更新します
200デフォルトの名無しさん:2012/09/15(土) 10:21:29.38
>>197
それ試してみます
201デフォルトの名無しさん:2012/09/15(土) 10:21:43.45
更新するデータはUIスレッドで作る必要はない
たまにそれで無駄な時間を食ってる例は見かける
202デフォルトの名無しさん:2012/09/15(土) 10:21:55.85
もうわかってるから
わかってるから
>>143>>144の反応なんだよ

文字でやりとりめんどうだからソース見せろって
日本語で説明されるよりどういう思考の結果がソースコードになってるか見れば概ねわかる
203デフォルトの名無しさん:2012/09/15(土) 10:26:11.48
>>202
じゃあ開発中のスパゲティソースうpして答えるか?
答えないだろ?
204デフォルトの名無しさん:2012/09/15(土) 10:27:34.18
全部見せてどうすんだ
バグがあるからってリポジトリのソース全部が原因の可能性は至極まれだろ
205デフォルトの名無しさん:2012/09/15(土) 10:28:49.78
使ってる部分だけ見せくれればいいよ
>>143の件だってソースコードの部分に原因がないことははっきりしただろ
206デフォルトの名無しさん:2012/09/15(土) 10:29:51.35
>>204
どこに問題があるのかわからないケースもあると思いますが?
対話式ですすめていかないとするなら、全部晒すしか無いと思いますよ
207デフォルトの名無しさん:2012/09/15(土) 10:31:04.97
また極端な…。
1かゼロかしかないのはプログラマだからなのか?
208デフォルトの名無しさん:2012/09/15(土) 10:32:11.56
>>206
そんなケースはそんなケースだけ特例で対応すればいいんだよ
レアケースに一般的なケースと同じ重みを振るかバカたれが
209デフォルトの名無しさん:2012/09/15(土) 10:32:42.33
>>205
抽象化が進んでいてクラスが大量にある場合
問題となる部分が不明瞭になると思うんだけどね
210デフォルトの名無しさん:2012/09/15(土) 10:34:05.94
初心者スレでそんな問題は出てこない
今まで見たことも無い
211デフォルトの名無しさん:2012/09/15(土) 10:35:14.76
>>207
また説明しないといけないのか

ここにくる質問の多くは回答者がまるでとなりの席にでも座ってるようなラフなのがほとんど
まあそれでもさくっと答えが可能なレベルの物もあるけど大半はそれじゃあ無理

でリアルで隣の席に座ってる人に質問した場合、即答できない場合は質問者のPCを
覗き込んで作業中のコードを見たりプログラムで処理するデータ数なども資料で見れるわけ

でもネットの掲示板上で文字だけでやると「言葉足らず」になるんだよね

それをいちいちヒアリングするのがめんどうだからソース出してもらって
隣の席に座ってるレベルに近いことをやろうとしてるわけ

OK?
212デフォルトの名無しさん:2012/09/15(土) 10:36:43.08
ものすごい高い時給をもらってる弁護士じゃないんだから
説明する義務もやさしさも必要ないと思ってる
213デフォルトの名無しさん:2012/09/15(土) 10:37:17.38
>>211
じゃあおれのPCをリモートしてくれよ
214デフォルトの名無しさん:2012/09/15(土) 10:38:11.12
てか、スカイプで教えてくれっていったら教えてくれるの?
スカイプならファイルや映像遅れるし
やってくれるならその方がいいんだけどな
215デフォルトの名無しさん:2012/09/15(土) 10:38:14.12
珍しく「解決してやりたいんだ」って意気込みは感じる
でも、普段は質問者をあおるんですよねw
216デフォルトの名無しさん:2012/09/15(土) 10:39:49.63
>>215
常に同じ人がいるわけじゃないしな
217デフォルトの名無しさん:2012/09/15(土) 10:40:53.34
>>143から始まって>>163までの間に工作員が混じってるのがバレバレなので
結論として
>>164なんだよ
218デフォルトの名無しさん:2012/09/15(土) 10:42:39.79
避難所にはIDありますよ
こっち見てる人は向こうも見てるはずなのでおすすめ
219デフォルトの名無しさん:2012/09/15(土) 10:43:39.40
と思ったけど>>1に避難所のURLが無かった

ふらっとC#,C♯,C#(初心者用) Part92
http://anago.2ch.net/test/read.cgi/software/1335443552/
220デフォルトの名無しさん:2012/09/15(土) 10:45:26.55
>>219
専ブラでキープしてあるが今鯖がおいてるな
221デフォルトの名無しさん:2012/09/15(土) 10:46:48.87
おいてるになってもた
落ちてる
222デフォルトの名無しさん:2012/09/15(土) 10:50:11.93
>>37
未来を意識しない糞ツールを作るのが良いですか。
そんな奴がデザインパターン使う意味があるの??
223デフォルトの名無しさん:2012/09/15(土) 10:50:26.15
落ちてないよ
224デフォルトの名無しさん:2012/09/15(土) 10:51:47.04
>>222
お前リアルであったら確実にしばいてるわ
225デフォルトの名無しさん:2012/09/15(土) 10:53:52.82
ほとんどのツールなんて書き捨てですからね

書き捨てでも汎用になりそうなロジックは多少含まれているかもしれないので
しばらくはソースコード取っておきますが、ほとんど整理されますね
226デフォルトの名無しさん:2012/09/15(土) 11:03:49.51
>>224
ごめんんさい。。。
227デフォルトの名無しさん:2012/09/15(土) 11:04:18.63
>>222
無知なメンバーがメンテする事を考えると
スパゲッティの下ごしらえになっちゃう可能性があるぜ?
228デフォルトの名無しさん:2012/09/15(土) 11:08:51.53
GUIで作ると小物でも結構大掛かりになっちゃうから
再利用性とか余計なことを気にしてしまうのは分からないでもないな
スクリプト言語のコマンドラインツールなら何の抵抗もなく糞スクリプトを書き捨てられるんだが
229デフォルトの名無しさん:2012/09/15(土) 11:08:55.29
>>227
もともとスパゲッティに仕上げられたツールのバージョンアップが相当きつかった思い出がある。
月1に行われるシステムのバージョンアップ+それに伴うテストデータ作成ツールのバージョンアップ
※どちらも保守開始時には糞の上に糞塗った、超高級糞おはぎ
230デフォルトの名無しさん:2012/09/15(土) 11:12:47.68
デザパタの失敗は移植作業で取り戻せるから割合どうでもいい
糞ロジックは仕様分析・再検討の上全部書き直すはめに
231デフォルトの名無しさん:2012/09/15(土) 11:19:07.42
>>230
ほんとそう思う。
前者はムカつくけど、「直すか」って思える。
あと作り手の思想から新しい発見もある。
232デフォルトの名無しさん:2012/09/15(土) 12:20:24.56
「エクスプローラーの空白部分(アイコン等がない、クリックしても何も起こらない場所)がクリックされたら」みたいなイベントはどう書けばいいんでしょう
今まで一つのウィンドウの中だけで事が済む簡単なWindowsアプリケーションしか作ったことがないので、ちょっと検討がつきません…
233デフォルトの名無しさん:2012/09/15(土) 12:30:43.83
シェル拡張でできるのかもしれませんが全くC#と関係ありません
234デフォルトの名無しさん:2012/09/15(土) 12:31:06.53
そういうときC#ってつくづく不完全だなと思います
235デフォルトの名無しさん:2012/09/15(土) 12:31:09.48
字面通りのイベントと解釈する

世の中でそれをやってるプログラムは
エクスプローラのプロセスの中で、.NET Frameworkの範疇を越えた拡張をしている
C#を使っている限り書くことはできない
236デフォルトの名無しさん:2012/09/15(土) 12:33:02.20
C#というよりはWindowsの欠陥に近い
エクスプローラもCLRで書き直せばいいんだよ
バイナリアーキテクチャが二種類混在してるに等しいんだ
237デフォルトの名無しさん:2012/09/15(土) 12:36:26.25
まあwin32APIをC#から呼び出せるのでシェル拡張もやろうと思えばできるんじゃないの?
これはウインドウ左のアイコンのメニューに追加だけど
http://cs2ch.blog123.fc2.com/blog-entry-80.html
238デフォルトの名無しさん:2012/09/15(土) 12:38:27.28
やりたいならC/C++でフックでもリモートスレッドでもシェル拡張経由でもなんでもいいから
エクスプローラのプロセスに進入してウィンドウをサブクラス化する

単純に面倒くさい上に、Win7からエクスプローラのウィンドウ構成が刷新されたらしくキツイ
239デフォルトの名無しさん:2012/09/15(土) 12:39:29.78
>>237はまるっきり見当違いなので無視して可
240デフォルトの名無しさん:2012/09/15(土) 12:40:55.72
COMなんだからC#でやろうと思えばできるのかもね
だとしてもスレ違いなのは間違いないが
241デフォルトの名無しさん:2012/09/15(土) 12:43:05.25
シェル拡張経由ならC#でも行けんじゃね
アセンブリは読み込まれてるわけだから、WndProcをメソッドとして書いて
Marshal.GetFunctionPointerForDelegateで関数ポインタに変換して
SetWindowSubclassサブクラス化できないかな
242デフォルトの名無しさん:2012/09/15(土) 12:45:14.69
ずばりそのまんまぐぐったらこんなのが
http://dobon.net/vb/dotnet/system/explorecontextmenu.html
243デフォルトの名無しさん:2012/09/15(土) 12:46:40.21
>>242はまるっきり見当違いなので無視して可
244デフォルトの名無しさん:2012/09/15(土) 12:48:54.74
URL貼ってる奴はもう少し真面目に検索するか、黙ってろ
245デフォルトの名無しさん:2012/09/15(土) 12:50:28.71
他のウィンドウのメッセージを受信できるサービス一つ立てておけば便利そうだな
ちょっと検討してみよう
246デフォルトの名無しさん:2012/09/15(土) 13:00:40.00
chameleon folderっていうソフトは
エクスプローラーの空欄やデスクトップをホイールクリックすると
ランチャーが開くけどアレはどうやってるのだろう
247デフォルトの名無しさん:2012/09/15(土) 13:08:12.86
インポートアドレステーブルにSetWindowsHookExの文字が見えるので>>238で間違いない
248232:2012/09/15(土) 13:09:09.33
みなさんレスありがとうございます
C#の練習のつもりだったのですが、フォームのクリックイベントとはわけが違うのですね…
ちょっと自分にはまだハードル高いようなのでまた経験積んでからにしようかと思います
(どうしても今すぐ作りたいわけではないので…)
お騒がせしました
249デフォルトの名無しさん:2012/09/15(土) 13:11:42.47
騒がしいのはいつものことだから気にするな
250デフォルトの名無しさん:2012/09/15(土) 13:17:21.62
他のアプリに口を出す類はバッドノウハウの塊だからな
何の勉強にもならん
251デフォルトの名無しさん:2012/09/15(土) 13:24:51.24
でも実際プログラミングでやりたいと思うのはそういうのばっかりじゃね?
マウスポチポチめんどくせーな、自動化できないのかなってよくある願望
ソフトウェアなんて全部オープンソースでやれやって思う
252デフォルトの名無しさん:2012/09/15(土) 13:26:59.91

       彡彡ハミミ
      彡彡´・ω・ミ  ソフトウェアはフリーであるべきなんだ
     彡彡彡彡ミッミミ
    彡彡彡彡ハミミミミ
    /   _|つ _|つ
    /    RMS |
253デフォルトの名無しさん:2012/09/15(土) 13:30:04.43
>>251
目的とする作業を行うソフトがあるからこそ、そういうくだらない補助ソフトが必要になるんだろ
その目的の作業を行うソフトを作る人も沢山いるんだよ
254デフォルトの名無しさん:2012/09/15(土) 13:30:10.88
RunpenMakegumiSine?
255デフォルトの名無しさん:2012/09/15(土) 13:33:35.58
一番いいのはエクスプローラならエクスプローラを作ってるMSが
不満の出ないソフトウェアを作り上げてくれればいいんだが

微妙に気が利かない所は20年変わってない
256デフォルトの名無しさん:2012/09/15(土) 13:36:36.40
前はそういう補助ユーティリティばっかり作って(簡単だから)調子に乗って公開したりしてたが
>>253に気づいてバカバカしくなってやめた
能無しの箱の操作をいくら効率化しようが意味無いんだよ
257デフォルトの名無しさん:2012/09/15(土) 13:40:28.47
「私はバカでした」って得意気に発表会することなのか?
258デフォルトの名無しさん:2012/09/15(土) 13:45:48.69
>>253
すまん、言っている意味がよくわからない
目的のソフトを作る人はたくさんいるが
実際使えるのはほんの一部で、
痒いとこにも手が届くようなものがない場合が多いから
補助ツール作るんでしょ
259デフォルトの名無しさん:2012/09/15(土) 13:49:14.71
突き詰めるとフロントエンドまで否定されそうですw
260デフォルトの名無しさん:2012/09/15(土) 14:00:37.39
補助ソフトってメインのソフトを作るほど根性がない奴が
なんか自己満足でやってるだけって感じがするね
261デフォルトの名無しさん:2012/09/15(土) 14:06:01.91
今度は人間性の批判ですか
お前自身に帰るだけなのに懲りないねえ
262デフォルトの名無しさん:2012/09/15(土) 14:06:49.43
「私はバカでした」+「私は陰険です(今も)」
263デフォルトの名無しさん:2012/09/15(土) 14:14:01.92
突き詰めると言語バインディングやラッパーライブラリの類も否定されそうな気がする
C使うほど根性のない奴がーとか何とでも言えるがな
264デフォルトの名無しさん:2012/09/15(土) 14:15:01.14
>>260
当たり前じゃん
自己満足以外に何があるよ
265デフォルトの名無しさん:2012/09/15(土) 14:15:54.70
>>264
そりゃ金でやってる人はほとんど目的のソフト側だろう
266デフォルトの名無しさん:2012/09/15(土) 14:16:07.97
エントロピーを減少させて宇宙の終焉がどうとかのため
267デフォルトの名無しさん:2012/09/15(土) 14:17:17.06
金を得ることは自己満足にはあたらないのかな
金を得なくてもとりあえず死なないんだから
自己実現のために金を得ているのではなくて?
268デフォルトの名無しさん:2012/09/15(土) 14:17:24.55
内部宇宙に集約されるとかそういう哲学的な話をしているんじゃない
269デフォルトの名無しさん:2012/09/15(土) 14:18:46.09
脱線に次ぐ脱線
270デフォルトの名無しさん:2012/09/15(土) 14:19:23.73
そして瞑想
271デフォルトの名無しさん:2012/09/15(土) 14:19:54.34
エクスプローラのイベントがー

そんなツールは行儀が悪い

でも必要とされてるよね

そんなものは根性なしが作るもの

きちょまん
272デフォルトの名無しさん:2012/09/15(土) 14:20:01.08
スマホで瞑想支援ソフトでも作った方がよっぽど創造的だな
273デフォルトの名無しさん:2012/09/15(土) 14:21:27.70
ま、根性なし言い出した時点で本筋の話題は終わったよw
274デフォルトの名無しさん:2012/09/15(土) 14:22:51.98
もともと補助の必要性なんて人によるんだから、主観で決めようとした時点で破綻している。
275デフォルトの名無しさん:2012/09/15(土) 14:23:20.07
エクスプローラーに関してはファイラーがいろいろあるので
まずそれためしてみるべきじゃない?
シェルやWinAPIをいじくりまわすより楽だと思うけど
まあ、何するかは知らないけど
ファイラでなにもないところをクリックしたら
ランチャが起動するというのはできるわけだし
あとは実行させたい何かをC#で書けばいいんじゃない?
276デフォルトの名無しさん:2012/09/15(土) 14:24:08.44
>>275
諦めますで終わった話まで巻き戻さんでええわww
277デフォルトの名無しさん:2012/09/15(土) 14:25:23.08
補助ソフト作ってる奴って結構多そうだな
278デフォルトの名無しさん:2012/09/15(土) 14:30:07.75
>>277
逆に現状に不満が無いやつはプログラマに向いてないだろ
279デフォルトの名無しさん:2012/09/15(土) 14:31:13.77
操作は特化してれば特化してるほど作業効率がよくなるし
好みに依存する部分も大きいからな
280デフォルトの名無しさん:2012/09/15(土) 14:32:10.73
プライベートで補助ツール以上はキツイな
今考えてるのは全ウィンドウの最小化ボタンの隣に
最前面に張り付けボタンを追加したい。
出来る?
281デフォルトの名無しさん:2012/09/15(土) 14:33:03.72
3美徳的には、わざわざ新しいもの開発するより、既にあるものを利用することを選ぶべきだよね
根性?マゾなだけじゃない?
282デフォルトの名無しさん:2012/09/15(土) 14:37:12.61
いつのまにか友人たちと感覚がずれてたのは驚いたな
おれ「ファイラ使ってないの?」
友人「使ってないが」
おれ「あんなことやこんなことが出来て便利なんだぞ」
友人「べつに不満はないなぁ」

もう10年近くパソコン使っているのに
未だにほとんど初期状態のPC使っているからな
毎日インターネットやったりエロゲもやったりしているのに
不満は全くない様子
ソフトがフリーズして固まっても、タスクマネージャ使わないで
そのまま主電源OFF・・・

俺が作業効率と快適さを求めてやってきたのは
なんだったのかなーと思う
283デフォルトの名無しさん:2012/09/15(土) 14:38:45.70
ファイラって作業効率上がるの?
なんか素人と違うことしてるぜって自己満足してるだけで
実際はなんも効率上がってないどころかむしろ下がってたりするんじゃないの
284デフォルトの名無しさん:2012/09/15(土) 14:38:47.38
>>280
ちょっと上にChameleon Folderってあったじゃん
それのを眺めてる時にChameleon Window Managerってのがあって、タイトルばーにボタンを追加してたよ
だからC#でとは断言できないが、出来る
やり方は中身を解析してみれば分かるんじゃね
285デフォルトの名無しさん:2012/09/15(土) 14:40:22.48
>>282
ニュース系の板で捗るぞ色々ととかスレ立ててる連中と変わらないレベル
笑っていいの?これ
286デフォルトの名無しさん:2012/09/15(土) 14:40:51.90
>>283
数千ものファイルを毎日扱ったり
ファイル操作を毎日しているならあったほうが便利でしょ
そんなことしないというならいらないけどね
便利といっても、他のツールを立ち上げる必要がなくなるとか
3回クリックなのが1回クリックだけでできるとかその程度だけどねw
287デフォルトの名無しさん:2012/09/15(土) 14:41:52.46
>>284
おお!ありがとう、それ使う!
288デフォルトの名無しさん:2012/09/15(土) 14:43:09.66
他人が自分と同じ価値観を持ってないことにショックを受けるって
それまでどういう周囲と生活してきたんだと思う
289デフォルトの名無しさん:2012/09/15(土) 14:45:40.34
お前らだって大先生レベルのくせに人おちょくれる立場かよw
290デフォルトの名無しさん:2012/09/15(土) 14:46:32.52
ファイラごときで全体の作業効率が変わるようなことしてるんなら自動化しろ
なんのためのC#だ
291デフォルトの名無しさん:2012/09/15(土) 14:49:26.36
こういうのが多分プログラマが誤解される原因を作ってるな
ステレオタイプなイメージとか
292デフォルトの名無しさん:2012/09/15(土) 14:53:30.92
>>290
C#でも限界はあるでしょ
ファイルを個別に仕分けるにしても
D&Dで1秒もかからないのに、
レアケースに対していちいちコード書いてるほうが時間が掛かる
293デフォルトの名無しさん:2012/09/15(土) 14:56:24.84
>>288
人の価値観認めちゃったら、会話もおもしろくないでしょ
何か話していても、「人それぞれだからね」なんてかしこまって言う奴がいるけど
あーコイツほんとにつまんねーやつだなって思う
294デフォルトの名無しさん:2012/09/15(土) 14:56:44.61
人それぞれでいいんだよ
作業効率を追求する労力が勿体ないと考える人。
それ自体が趣味だから問題無しとする人。
シンプルな純正ツールが好きな人。
295デフォルトの名無しさん:2012/09/15(土) 14:58:25.58
そもそもその作業が発生しない人の割合は何割ですか?
296デフォルトの名無しさん:2012/09/15(土) 15:00:59.15
発生しない人はいない
D&Dなんてみんなするでしょ
297デフォルトの名無しさん:2012/09/15(土) 15:02:17.95
>>294
それプログラマとは考えられない発想だな
ソフトウェアなんてエゴから生まれるものだろ?
現状に不満を抱き、向上心を持って行動するのがプログラマでしょ
それがないなら、ただの無気力プログラマ
298デフォルトの名無しさん:2012/09/15(土) 15:02:42.62
>>293
人それぞれって前提を置いても会話を膨らませることは出来るよ
会話もロジックだからね

それが出来ない人間を指して
他人の価値観を認めてるから会話が進まないんだ、なんて錯誤も甚だしい
299デフォルトの名無しさん:2012/09/15(土) 15:03:39.89
ソフトウェアに向いてるうちはいいけど
他人との会話で出て来るならそれは単なるコミュ症です
300デフォルトの名無しさん:2012/09/15(土) 15:05:12.37
>>296
純正シェルより有意に効率化できる状況を想定できなきゃ無価値
301デフォルトの名無しさん:2012/09/15(土) 15:06:05.04
むしろ開発者はヒアリングをする立場だよね
不便なこと困ってることを聞く側なんだよな
302デフォルトの名無しさん:2012/09/15(土) 15:06:31.72
うわーつまんねーやつら
やっぱり理数系の奴らとは話し合わないわ
あーでもないこーでもないと言い合うのがおもしろいのに
暗い奴らだな
303デフォルトの名無しさん:2012/09/15(土) 15:07:21.43
>>301
仕事ではそうするよ
コイツ最高にバカって心で念じながら
304デフォルトの名無しさん:2012/09/15(土) 15:08:09.92
人それぞれだろ!
って言ってるやつほど匿名掲示板では発狂して暴れまわるよね
305デフォルトの名無しさん:2012/09/15(土) 15:08:29.40
なんだ空気読めない奴が暴れてるだけか。
さすがにこの場でくらい空気嫁よ。
306デフォルトの名無しさん:2012/09/15(土) 15:11:02.00
むしろこの場だからこそ読まなくて済むんだろ
307デフォルトの名無しさん:2012/09/15(土) 15:12:07.71
>>303
ふーん
シンプルに性格悪いね
308デフォルトの名無しさん:2012/09/15(土) 15:13:49.07
>>304
人それぞれと言い出す奴は主張がないんだよ
だから暴れることでしか自分を表現できない
309デフォルトの名無しさん:2012/09/15(土) 15:15:55.54
いやー単に会話が下手糞なだけでしょ
お前らの一部が黙りこくるのと似てるよ

会話スキルが20年で育たなかったんだな
孤独だったんだな辛いな
310デフォルトの名無しさん:2012/09/15(土) 15:23:27.31
>>286
>数千ものファイルを毎日扱ったり

ファイラでどうのこうののレベルじゃないだろ。
>>290 の言うように自動化しなよ。
311デフォルトの名無しさん:2012/09/15(土) 15:23:51.34
>>303
お前が補助ツール嫌いな理由が分かった気がするよ
自分用に補助ツール作るなら、形式上自分自身にヒアリングするわけだからな

”俺最高にバカ”って心で念じることになるんだな
312デフォルトの名無しさん:2012/09/15(土) 15:25:40.95
お前らって意外と沸点低いよね
313デフォルトの名無しさん:2012/09/15(土) 15:26:30.69
5個を越えるとバッチ、30個を越えるとスクリプトを検討する
314デフォルトの名無しさん:2012/09/15(土) 15:27:54.66
あたしってほんとバカ
315デフォルトの名無しさん:2012/09/15(土) 15:28:44.13
316デフォルトの名無しさん:2012/09/15(土) 15:32:00.46
最低でもGUIが絡まなければスクリプト使うからC#の出番はない。
317デフォルトの名無しさん:2012/09/15(土) 15:33:39.97
毎日毎日膨大な数のファイルをD&Dで仕分けていて自動化も出来ない、なんて言うと
画像スレに一日中張り付いてるニートあたりだと邪推されちゃうよ
318デフォルトの名無しさん:2012/09/15(土) 15:36:57.12
>>317
誰もそんな事言ってないが
コミュ障ですか?
319デフォルトの名無しさん:2012/09/15(土) 15:38:34.76
>>315
一秒もかからない D&D ってことは、ほとんど考えずにやれる作業ってことだよね。
それを毎日って、辞めさせるための仕打ちでも受けてるのか? (w
320デフォルトの名無しさん:2012/09/15(土) 15:39:17.29
画像スレに一日中張り付いてるニートでも自動化くらい出来ますよ失礼ですね
一日10GBくらい捌いてます
321デフォルトの名無しさん:2012/09/15(土) 15:43:51.15
>>319
>>320
自動化できないようなレアケースと言っているんだけどね
数千もD&Dしているなんて言っていない
普通に理解できることだろ
お前、プログラマとしても人としても終わってるわ
322デフォルトの名無しさん:2012/09/15(土) 15:45:50.36
誰が誰に喋ってるか分からないのでかなり誤射がある模様
323デフォルトの名無しさん:2012/09/15(土) 15:50:01.38
ム板で会話を試みる奴は素人
324デフォルトの名無しさん:2012/09/15(土) 16:08:36.54
>>321
>自動化できないようなレアケースと言っているんだけどね

レアケースだけ人手でやるようにすればいいだけじゃん。
何でそんなとこまでいちいちコードで対応しようとするんだ?

>数千もD&Dしているなんて言っていない

>> 数千ものファイルを毎日扱ったり

ってどういうことやってるんだ?
すくなくとも、俺はそんな事「毎日」はしてないから、全然理解できない。

> お前、プログラマとしても人としても終わってるわ

まあ、人格攻撃する時点で終わってるか…
325デフォルトの名無しさん:2012/09/15(土) 16:09:27.22
static async Task<int> Hoge()
{
  return 10;
}

なんかこの書き方が気になるな・・・
Taskが返ってくるけど別に何もできない感じが気になる・・・
326デフォルトの名無しさん:2012/09/15(土) 16:18:38.34
>>324
>レアケースだけ人手でやるようにすればいいだけじゃん。
そうしてるっていってるだろ

>何でそんなとこまでいちいちコードで対応しようとするんだ?
誰もしているなんて言っていない
そこはD&Dって言っただろ

何でここまで読解力がないんだ?
お前脳みそ腐ってるだろ
こういうキチガイが理数系にいるんだよな
327デフォルトの名無しさん:2012/09/15(土) 16:23:21.31
理系コンプでもあんの?
328デフォルトの名無しさん:2012/09/15(土) 16:33:12.66
プログラマにでもなろうと思ってたが
大学行って幻滅したわ
みんな髪の毛真っ黒だし、根暗でつまらない奴らばかり
こんな奴らと一生仕事するのかと思ったら吐き気したわ

今はプログラミングとは関係ない職場だが
プログラミングができるのでできない奴らより作業効率がいい分得している
それに小銭稼ぎもできるしな
329デフォルトの名無しさん:2012/09/15(土) 16:56:16.50
髪の毛染めるようなチャラチャラしたやつきめえ
330デフォルトの名無しさん:2012/09/15(土) 17:01:11.47
>>326
>>レアケースだけ人手でやるようにすればいいだけじゃん。
>そうしてるっていってるだろ

ファイラ使うといったり、色々忙しいな。

>>327
どっかの入試に落ちたとかじゃね?
331デフォルトの名無しさん:2012/09/15(土) 17:27:22.76
使うならファイガだなー
332デフォルトの名無しさん:2012/09/15(土) 17:29:30.38
ファイラ使ってる自分に酔ってアイデンティティ保ってるようじゃまだまださ
333デフォルトの名無しさん:2012/09/15(土) 18:14:55.45
>>332
ファイラ使ってるといったぐらいでそう思っちゃうお前の心が貧しい

>>330
お前が読解力ないだけ
俺が言っていることは最初から一貫している
334デフォルトの名無しさん:2012/09/15(土) 18:20:16.26
>>333以外は>>333がどのレスを書いたか把握できない仕様なんだけど、これも読解力の問題なのかな?
335デフォルトの名無しさん:2012/09/15(土) 18:39:14.23
話を総合すると
理数系の学科で大学デビューを図ったが、
それすら馴染めなかったコミュ障らしいから
深く考えない方がいい
336デフォルトの名無しさん:2012/09/15(土) 18:44:57.51
>>333
> 俺が言っていることは最初から一貫している

お前の頭の中ではそうなんだろうな。(w
337デフォルトの名無しさん:2012/09/15(土) 19:26:44.73
なんだ、学生はまだ夏休みか
338デフォルトの名無しさん:2012/09/15(土) 20:19:19.47
>>325
return Task.FromResult(10);
asyncメソッドで戻ってきたTaskは既にスタート済みだから
もともと完了を待つ以外何も出来んぞ
TaskCompletionSourceあたりも覚えておくと便利
339デフォルトの名無しさん:2012/09/15(土) 21:23:43.73
explorerがタブとカスタムメニュー?採用したらファイラ使わないよ
340デフォルトの名無しさん:2012/09/15(土) 21:26:21.24
漢ならPowerShellで
341デフォルトの名無しさん:2012/09/15(土) 22:47:40.88
PowerShellって便利?
今のところ従来のコマンドラインで事足りてるから使ったことないんだけど、
PowerShell使うメリットとか便利なコマンドあったら教えて欲しい
342デフォルトの名無しさん:2012/09/15(土) 22:51:30.78
>>341
PowerShellはFormアプリ書けるよ
でもスクリプトが悪さしないように標準ではガチガチでPowerShellが動かないので
署名が必要だったりと微妙な感じ
343デフォルトの名無しさん:2012/09/15(土) 22:53:38.53
セキュリティ関連を考えなければマジで昔のBASICみたいな感じで
アプリが書ける・・・のにセキュリティで駄目な子
344デフォルトの名無しさん:2012/09/15(土) 23:04:44.76
レスどーも
ちょっとググったけどExport-CSVとか地味に便利そう
連休暇だしかじってみようかなぁ
345デフォルトの名無しさん:2012/09/15(土) 23:08:31.22
そして月曜には婚姻届を出す羽目に
346デフォルトの名無しさん:2012/09/15(土) 23:16:31.75
qttabbarはフルC#で>>232の機能があるな
347デフォルトの名無しさん:2012/09/15(土) 23:24:12.97
348デフォルトの名無しさん:2012/09/15(土) 23:36:44.52
いちいち人の発言の裏取ってんじゃねえよキメェな
349デフォルトの名無しさん:2012/09/16(日) 02:05:06.12
>>348
どのレスに対するレスなんだ?
ひょっとして周りから自己中っていわれてないか?
350デフォルトの名無しさん:2012/09/16(日) 05:21:19.99
>>347
インスコして動作してるんだが
351デフォルトの名無しさん:2012/09/16(日) 11:34:46.74
そりゃ純C#だろうが混在だろうが動作はするだろ
動作しねえもの配っても意味ないんだから
352デフォルトの名無しさん:2012/09/16(日) 12:28:41.82
尖閣諸島には石油資源が豊富

石油があると外国が侵略する理由になる
また豊富な石油で電力を賄うと原発への依存度が下がる

原発を減らすと技術力がガクッと下がりさらに国防力も大幅下落する
アメリカやフランスなどとの関係も悪くなり戦争リスクが高まる

結論
尖閣諸島を放棄することは国益
353デフォルトの名無しさん:2012/09/16(日) 12:31:49.16
>>352
中国に教えてあげてよ、喜ばれるよ。
354デフォルトの名無しさん:2012/09/16(日) 14:00:45.57
>>338
完了を待つ意外なにも出来ないといっても
awaitしてもいいし同期Waitしてもいいわけでしょ
まあどっちも完了を待ってるわけだけど・・・

まあawaitなしのasyncメソッドはただの同期実行でほぼ違いはないんだろうけど・・・
355デフォルトの名無しさん:2012/09/16(日) 20:57:20.45
てs
356デフォルトの名無しさん:2012/09/16(日) 20:58:35.03
列挙型の定数を比較するときの == と equalsメソッド の違いって何?あるの?
357デフォルトの名無しさん:2012/09/16(日) 20:59:26.06
asとcastの違いみたいなもの
358デフォルトの名無しさん:2012/09/16(日) 21:28:04.08
>>356
a.Equals(b) はaとbの両方がボックス化されるからクソ遅い
a == b は単なる数値の比較になるからクソ速い
あと、Equalsは引数がobjectなので間違って違う型を渡してもコンパイル時にエラーにならず
実行時にエラーが出てしまう
==はコンパイル時に型がチェックされる
つまり==を使え
359デフォルトの名無しさん:2012/09/16(日) 22:15:01.22
>>358
挙動が違うよね
オペレータは変数の型に実装されたもの
Equalsはインスタンスに実装されたもの
この辺で足元救われる事の多い初心者です
360デフォルトの名無しさん:2012/09/16(日) 22:19:59.18
>>359
インスタンスメソッドも型に実装されたものだよ
こっそり隠し引数にインスタンスを渡してるだけの簡単な仕掛けです
361デフォルトの名無しさん:2012/09/16(日) 22:20:54.20
詳しくは仮想関数テーブルでggr
362360:2012/09/16(日) 22:24:34.66
ちなみに>>358のa.Equals(b)の場合、Enumクラスに実装されている
bool Equals(Enum this, object x) のようなメソッド(thisは隠し引数)を
Enum.Equals(a, b) のようにして呼んでいます
だからaもbもボックス化されるわけです
363デフォルトの名無しさん:2012/09/16(日) 22:28:34.44
それから列挙型同士の==演算子は型に実装されたものじゃないぞ
C#の言語仕様に組み込まれていて、コンパイラが数値同士の単純な比較に変換する
364デフォルトの名無しさん:2012/09/16(日) 22:55:40.60
>>358
本当にありがとう、よく分かった
365デフォルトの名無しさん:2012/09/16(日) 22:59:54.63
>>358
分かり易くてかっこいい説明だ
366デフォルトの名無しさん:2012/09/16(日) 23:14:39.52
>>358
抱いて欲しい
367デフォルトの名無しさん:2012/09/16(日) 23:57:24.93
XMLの取り扱いがすごく面倒な気がするんだけど、使い方が悪いのかな?
Setting.iniやSetting.mdbを作ったほうが圧倒的に取り扱いやすいし、汎用的なクラスを書ける気がする
368デフォルトの名無しさん:2012/09/17(月) 00:01:18.45
さすがにその拡張子が対案じゃ知識不足にしか見えない
369デフォルトの名無しさん:2012/09/17(月) 00:03:44.85
最近わりかしプログラムが書けるようになってきて、プログラムの書き方自体より、クラスやメソッドの実装方法に悩むことが多いんだけど。
こういう書き方も出来るけど、こう書いた方がいいみたいなことを勉強できる良書ってありますか?
370デフォルトの名無しさん:2012/09/17(月) 00:04:38.03
>>368
ですよね、すいますん
371デフォルトの名無しさん:2012/09/17(月) 00:10:24.40
>>369
普通、 実装=プログラムを書くこと自体 だぞ
クラスやメソッドの設計と言いたいの?
まずは用語を正しく使うことから
372デフォルトの名無しさん:2012/09/17(月) 00:14:40.51
>>371
そうです設計です。教えてください
373デフォルトの名無しさん:2012/09/17(月) 00:15:59.89
デザインパターンでググれ
374デフォルトの名無しさん:2012/09/17(月) 00:26:21.82
>>373
さんきゅーだぜぇ
375デフォルトの名無しさん:2012/09/17(月) 03:26:29.81
== あれば equalsメソッド要らない子
なら、equalsメソッド使わなきゃならん場合って何?
376デフォルトの名無しさん:2012/09/17(月) 07:11:38.37
>>369
自分も勉強しているところだけど、ここが参考になった
MSDN Magazine: Cutting Edge - MVP パターンによる Web フォームの強化
ttp://msdn.microsoft.com/ja-jp/magazine/ff955232.aspx

C#と諸々 MVP (Model View Presenter)パターン
ttp://csharper.blog57.fc2.com/blog-entry-245.html

クラス構造を整えて再利用性を高める − @IT
ttp://www.atmarkit.co.jp/fdotnet/vblab/developbizapp_03/developbizapp_03_02.html
377デフォルトの名無しさん:2012/09/17(月) 07:45:00.34
378デフォルトの名無しさん:2012/09/17(月) 10:00:08.77
XNAのSoundEffectInstanceでStateがPlayになっててももう一個その音を再生する方法ってどうやるの?

ようは同一の効果音を重複して再生させたいだけなんだけど・・・
379デフォルトの名無しさん:2012/09/17(月) 10:22:10.55
ボタンが押される度にこんな感じの処理をさせるのは無駄だよねえ。

SoundEffect se = マネージャークラスを参照する
SoundEffectInstance sei = se.CreateInstance();
sei.Volume = soundEffectVolume;
sei.Play();
380デフォルトの名無しさん:2012/09/17(月) 10:31:55.27
毎回ファイルを読み込んでるとしたら超無駄
381デフォルトの名無しさん:2012/09/17(月) 10:42:21.13
ソースを見れば一発でアドバイスできそうなレベルなんだろうけど
ネットで文字だけでのやりとりだとめんどくさいねえw
382デフォルトの名無しさん:2012/09/17(月) 10:52:19.22
>>381
答えられないやつほどこういうこという
スレチだからよそ逝け
383デフォルトの名無しさん:2012/09/17(月) 11:08:05.72
>>382
そんなんだからエスパーって言われるんだよ
384デフォルトの名無しさん:2012/09/17(月) 13:09:10.99
いいじゃない
答えて欲しくないんだろ
自力で何とかすればw

不利益になるのは質問した人間だけどな
385デフォルトの名無しさん:2012/09/17(月) 13:15:41.71
SoundEffectInstanceのインスタンスをあらかじめ複数個作っておく
で、再生時に使ってないインスタンスを探してplay

XNA自体はそれほど使い込んで無いけど
こういう使い方をするライブラリは結構多いと感じる
参考までに
386デフォルトの名無しさん:2012/09/17(月) 13:27:25.28
>>385

その方法で行きます、ども
387デフォルトの名無しさん:2012/09/17(月) 13:28:20.02
この質問、ライブラリの使用方法とか作法とかの問題だろ
ソースを読んでも回答できるようになるとは思えないんだが
388デフォルトの名無しさん:2012/09/17(月) 13:31:09.98
思えないと、そうですか
勝手に思ってろよ
どうぞ止めないよ
389デフォルトの名無しさん:2012/09/17(月) 13:43:51.17
>>387
え?
ライブラリのまずい使い方をソースから読み取るんですよ

うまくいかないのは”自分では正しくやってるつもり”がほとんどなので
本人はソースが間違ってないと思い込んでることがほとんですし
390デフォルトの名無しさん:2012/09/17(月) 13:45:37.07
>>388
この程度のことも答えられない無能はソース見ても無理w
391デフォルトの名無しさん:2012/09/17(月) 13:46:44.44
>>389
そこまで厳密な質問でもないし
お前には無理
392デフォルトの名無しさん:2012/09/17(月) 13:49:18.48
XElement使えばXMLスイスイ使えるだろ
393デフォルトの名無しさん:2012/09/17(月) 13:52:52.33
最初にソースだしておけば不毛なやり取りで時間を無駄にすることもないのに愚かだね
394デフォルトの名無しさん:2012/09/17(月) 13:55:20.16
せやな
395デフォルトの名無しさん:2012/09/17(月) 13:55:46.25
全てソースがあったほうがいいね
使う使わないはともかく酒の肴とかに出来る
396デフォルトの名無しさん:2012/09/17(月) 13:58:34.61
というかソースを晒すことでもっといい方法を教えてもらえる可能性もあるしなあ

老婆心で言ってるのに、自分のコードが盗まれるとでも思ってるのかねえ
397デフォルトの名無しさん:2012/09/17(月) 13:58:48.13
飲み会の揚げ物とは訳が違うぞ
398デフォルトの名無しさん:2012/09/17(月) 13:59:50.64
そんなものは求めてねえんだよ
お前達は求められたものだけ粛々と提供していればいい
399デフォルトの名無しさん:2012/09/17(月) 14:01:20.70
>>378 = >>379です、ごめんなさい
400デフォルトの名無しさん:2012/09/17(月) 14:22:39.61
このスレはソース見せるようなスレじゃないし
嫌なら答えなければいいだけ
愚痴ってないで仕事しろ
401デフォルトの名無しさん:2012/09/17(月) 14:30:15.86
どうでもいい。分かったら答える。分からなかったら黙ってみてる。
402デフォルトの名無しさん:2012/09/17(月) 14:33:00.64
ン、待って。てことはレベル的に質問者<回答者の構図なのに
質問者は回答者にパクられると思ってソース出さないってこと?
そのせいで回答者間で争ったり後出しの情報が出てきたり的確なアドバイスなんか出るわけないじゃん
このスレいらないね

>>400は結果として無駄になるレスが増えることを望んでるの?
403デフォルトの名無しさん:2012/09/17(月) 14:36:37.88
うるせーな
すっこんでろ
404デフォルトの名無しさん:2012/09/17(月) 14:45:20.63
元くだスレですからねココ
405デフォルトの名無しさん:2012/09/17(月) 14:49:09.53
大事なのは今とこれからであって元はどうでもいい
406デフォルトの名無しさん:2012/09/17(月) 15:01:34.67
>>402
お前よりバカはいない
無駄レスしているのはお前
病院行くか自殺しろ
407385=387:2012/09/17(月) 15:09:36.08
余計なレスした俺が悪かったって事で
408デフォルトの名無しさん:2012/09/17(月) 15:10:32.37
ID出ないクソ板のまま放置してる運営が悪い
409デフォルトの名無しさん:2012/09/17(月) 15:11:12.65
でました!お得意!責任転嫁!
410デフォルトの名無しさん:2012/09/17(月) 15:13:52.34
質問者がソース出さないって言ってるけど>>379に出てんじゃん
411デフォルトの名無しさん:2012/09/17(月) 15:14:48.74
それが質問者だって言う根拠は?
IDも無いのに
412デフォルトの名無しさん:2012/09/17(月) 15:24:52.08
>>406
uy
413デフォルトの名無しさん:2012/09/17(月) 15:27:46.18
>>410
>SoundEffect se = マネージャークラスを参照する
↑ここ重要
CreateInstanceがリソースロードしてるのか
既にロード済みのリソースをインスタンスに割り当てるかによって無駄かどうか全然違う
414デフォルトの名無しさん:2012/09/17(月) 15:29:34.47
uyはトリ外すなよ
415デフォルトの名無しさん:2012/09/17(月) 15:31:48.60
プログラマーともあろうものが
IDでないクソ板でプログラムについて語るような不合理なことをするべきではない
416デフォルトの名無しさん:2012/09/17(月) 15:32:38.84
精神障害者いじめるのは楽しいな
今日はお薬多めに飲んでおいたほうがいいぞw
417デフォルトの名無しさん:2012/09/17(月) 15:35:27.36
>>416
精神障害者をいじめているという脳内妄想に浸っている
精神病のキチガイニート君は
他にやることはないんですかな?
プログラムの勉強は進んでますか?
418デフォルトの名無しさん:2012/09/17(月) 15:53:41.63
相談室でもリバースエンジニアリングは道義に反する!中韓の手先か!
とか抜かしてる奴いたし
いかに大学生はまだ夏休みと言っても最近頓に酷いぞ
419デフォルトの名無しさん:2012/09/17(月) 15:56:58.24
EntityFrameworkについて教えて欲しいのですが、StoreGeneratedPatternプロパティの
Computedってどういう意味なのでしょうか?

憶測でNoneは通常、Identityはオートインクリメントだと思い込んでいるのですが、
Computedだけは推測すらつきません。

というか、この辺の日本語の初心者向け資料ないでしょうか?

420デフォルトの名無しさん:2012/09/17(月) 16:01:26.21
>>419
レコードに最終更新のタイムスタンプを付けたいときを考えるととても分かりやすい
421デフォルトの名無しさん:2012/09/17(月) 18:07:47.09
列挙型の命名規則ってどうなってんの?

RINGO
MIKAN

こうじゃなくて

Ringo
Mikan

こう?
422デフォルトの名無しさん:2012/09/17(月) 18:09:51.92
>>421
そう
423デフォルトの名無しさん:2012/09/17(月) 18:12:09.87
メンバー変数はどれにする?
m_Hoge
_Hoge
hoge
424デフォルトの名無しさん:2012/09/17(月) 18:13:24.53
>>423
privateならどうしようと自由だったはず
425デフォルトの名無しさん:2012/09/17(月) 18:32:00.67
>>423
自分だったら
hoge か hoge_
C#では予約済み識別子じゃないけど、やっぱアンダースコアで始まる名前はやだな
426デフォルトの名無しさん:2012/09/17(月) 18:55:26.72
自分はパッキングされたフィールドのケツにアンダースコア付けてる以外、全てPascalCase

昔は区別すべきだと思って、camelCaseにしたりプリフィックス入れたりしてたけど
IDEがいろいろ検出するようになったから、大方無意味という結論に至った

パッキングされたフィールドは間違えて更新すると不整合の元になるので、これは区別せざるを得ない
427デフォルトの名無しさん:2012/09/17(月) 19:01:46.41
俺もメンバ変数は全部PascalCaseだなあ
バッキングフィールドは_PascalCaseで

パブリックとプライベート、フィールドとプロパティで
字面で区別すべき違いがあるように思えなくて区別してない
バッキングフィールドが出てきたら区別するけど
428デフォルトの名無しさん:2012/09/17(月) 19:06:56.29
確かにフィールドとプロパティで区別する必要はないけど、
メソッドとフィールドは分けたいので全部_PascalCaseだな
429デフォルトの名無しさん:2012/09/17(月) 19:14:58.23
_camelCaseな俺は少数派なのかな
430デフォルトの名無しさん:2012/09/17(月) 19:18:12.23
気になるならコソアンでも立ててくればいいんじゃね
431デフォルトの名無しさん:2012/09/17(月) 20:48:34.59
camelCase_
432デフォルトの名無しさん:2012/09/18(火) 09:21:40.53
くだらね〜事考えている暇にプログラム作った方が良いんじゃないの?
433デフォルトの名無しさん:2012/09/18(火) 09:56:49.63
hogEhogE
434デフォルトの名無しさん:2012/09/18(火) 11:07:33.84
>>432
手が空いてんだよ
言わせんな恥ずかしい

誰か仕事ォォォォォォ
435デフォルトの名無しさん:2012/09/18(火) 11:09:42.41
仕事は自分で作れ、探せ・・・

といいたいところだが、日本人の大半は偉そうなこといいつつ
臆病者ばっかりでイノベーター理論でいうところのレイトマジョリティばっかりな市場だからなあ・・・
436デフォルトの名無しさん:2012/09/18(火) 14:28:03.07
非publicフィールドは先頭に_をつけてるな。ローカル変数はcamelで
プロパティとかはPascal。オープンソース見てたらこれが多いパターン。
437デフォルトの名無しさん:2012/09/18(火) 14:43:26.41
アンダースコアはキモい
438デフォルトの名無しさん:2012/09/18(火) 14:44:16.87
アンダースコアは可読性が落ちる
439デフォルトの名無しさん:2012/09/18(火) 16:38:04.41
でもアンダースコアじゃないとエラーになりそうな気になってしまうビクンビクン
440デフォルトの名無しさん:2012/09/18(火) 16:46:26.32
>>436
>非public
protectedもアウトだから気をつけてね

http://msdn.microsoft.com/ja-jp/library/x8ak87y5.aspx
>public、protected、または protectedinternal の識別子を
>アンダースコア文字 (_) で始めることは、
>共通言語仕様 (CLS: Common Language Specification) に違反します。
441デフォルトの名無しさん:2012/09/18(火) 17:29:57.50
スコープがしっかりしてるC#でつける意味無いよね?
442デフォルトの名無しさん:2012/09/18(火) 17:48:32.63
頭にアンスコやプレフィックスを付けるとインテリセンスでprivateフィールド一覧が表示されるので便利と言えば便利
443デフォルトの名無しさん:2012/09/18(火) 18:34:07.44
ASP.NET MVCのプロジェクトを新規作成するとデフォルトで以下の3つができますよね。
・Web.config
・Web.Debug.config
・Web.Release.config

上記と同じことを通常のアプリケーション(WinFormsなど)のApp.configで行うことはできますか?
ConnectionStringの設定だけでもテストサーバーと本番サーバーを簡単に切り替えれると嬉しいのですが
444デフォルトの名無しさん:2012/09/18(火) 19:29:13.17
その程度#ifでいいだろ
445デフォルトの名無しさん:2012/09/18(火) 19:41:17.56
bin/debugのexe.configを編集しとけば上書きされなかった気がする
446デフォルトの名無しさん:2012/09/18(火) 20:47:28.78
タイマー作ってるんだけど
・interval1秒のタイマーを1つだけ置いて通知時刻リストをいちいち確認する
・タイマーを複数使って、intervalが通知時刻-現在時刻になるようなタイマーを通知時刻ごとに置く
どっちがいいんだろう
447デフォルトの名無しさん:2012/09/18(火) 20:54:38.89
タイマー何個も作っても裏でずっとチェックしてるんだろうし
一個でいいでしょ
448デフォルトの名無しさん:2012/09/18(火) 21:41:27.29
public int Value{get{return _value}}
ConstructorA(int value)
{
_value = value
}
同じ意味をもつ変数で、引数とフィールドを区別するために
アンダースコアはあったほうがいい。アンダースコアを使わない場合
どんなふうにするよ?
449デフォルトの名無しさん:2012/09/18(火) 21:42:34.69
public int Value{ get; private set; }

でええやん
450デフォルトの名無しさん:2012/09/18(火) 21:44:15.09
俺はフィールドPascal引数camelなのでどうでもよかです
451デフォルトの名無しさん:2012/09/18(火) 21:46:18.39
thisをつけろよデコスケ野郎
452デフォルトの名無しさん:2012/09/18(火) 21:48:04.36
同じく
453デフォルトの名無しさん:2012/09/18(火) 22:05:45.86
>>449
NotifyPropertyChangedEventHandlerあったりとかすると
バックフィールドないとだめだろ

フィールドPascalはアリか、プロパティやアクセス制限の区別がしづらいが。
フィールド→プロパティのとき、改名リファクタリングが不要でいいかも。
454デフォルトの名無しさん:2012/09/18(火) 22:07:24.53
同名をthis.で区別するのは混乱のもと
455デフォルトの名無しさん:2012/09/18(火) 22:10:35.55
区別に困ったこと無いんだよね
実際のところ
456デフォルトの名無しさん:2012/09/18(火) 22:14:50.01
バックフィールドは頭にアンダーバーをつけるわ
プロパティが本道でこれは裏道だって言う意味を込めて
457デフォルトの名無しさん:2012/09/18(火) 22:15:00.35
バックフィールドもPascalならバックフィールドとそのプロパティは
どう違いをつけてるの?上の例ならフィールドをValueにすると
プロパティValueと被るけど。
458デフォルトの名無しさん:2012/09/18(火) 22:15:52.52
>>456
457取り消し。なるほど、フィールドのなかでもバックフィールドのみ
別扱いってことね。それがいいかも。
459デフォルトの名無しさん:2012/09/18(火) 22:16:12.63
ケツアンダー
460デフォルトの名無しさん:2012/09/19(水) 01:13:36.52
>>459
ホモい
461デフォルトの名無しさん:2012/09/19(水) 01:26:28.69
PropertyChangedだけやりたい場合もhoge{get;set;}程度に簡単に書けるようになるといいな
462デフォルトの名無しさん:2012/09/19(水) 01:32:08.83
5年以上言われてる時点で望み薄だな
463デフォルトの名無しさん:2012/09/19(水) 01:45:01.88
それ言い出したらバリデーション入れるにはどうするのかとかキリがないからな
やるんなら直接言語に組み込むんじゃなくてメタプログラミングの方向へ進むべきだよ
464デフォルトの名無しさん:2012/09/19(水) 01:50:01.52
あとプロパティに従属関係があるときには一つプロパティを設定すると
複数のプロパティのPropertyChangedが起きたりするわけだけど
そういうのはどうするのかとか
考えだしたら全然単純じゃない
465デフォルトの名無しさん:2012/09/19(水) 04:46:14.14
WPFで(Xamlで定義した)ControlTemplateを分離コードの中でControlに設定するにはどうすれば良いですか?
466デフォルトの名無しさん:2012/09/19(水) 08:45:29.03
そのまま記述するだけだとしか言いようがないな
<Resources>から取り出す方法が分からないとか何か無いのか
467465:2012/09/19(水) 09:37:37.72
LabelにControlTemplateを設定したいとして
Label label = new Label(){Template = xxxxx};
のようにしたいのですが、xxxxxのところに何を書けば良いのかわかりません。
468デフォルトの名無しさん:2012/09/19(水) 09:43:54.74
>>448
ctor( int value
469デフォルトの名無しさん:2012/09/19(水) 09:44:11.16
xamlでどこにどう定義してるのさ
取りあえずWindow.Resourcesに定義してるとしてこんな感じ

<Window ...>
  <Window.Resources>
    <ControlTemplate x:Key="xxxTemplate">
      ...
    </ControlTemplate>
  </Window.Resources>
  ...
</Window>

partial class Window1 : Window {
  void SetXxxTemplate() {
    var template = (ControlTemplate)this.Resources["xxxTemplate"];
    this.hoge.Template = template;
  }
}
470デフォルトの名無しさん:2012/09/19(水) 09:45:07.88
誤送信(´;ω;`)

>>448
ctor( int value )
{
 this.value = value;
}

でええやん
471デフォルトの名無しさん:2012/09/19(水) 09:46:13.35
ありゃもう終わった話だったか(´;ω;`)
472465:2012/09/19(水) 10:32:40.14
>>469
それでうまくいきました、ありがとうございます(ControlTemplateは>>469のようにWindow.Rosources内に定義していました)。

ところで、WPFの分離コードについて詳しく書いてあるサイトないし書籍はありませんか? 手持ちの本でもぐぐってもXamlによる記法しかでて来なくて"そのまま記述する"にはどうすればよいかがわからないのです。
473デフォルトの名無しさん:2012/09/19(水) 12:58:45.02
ASP.NET MVC 4でEntityFrameworkの結果をJsonで送り出したいのですが、
以下のようにするとリレーションする全データが送られてしまいます。
Customerテーブルの内容だけを送りたいのですが、どうすればいいのでしょうか?

public ActionResult GetAll()
{
using (var db = new ModelContainer())
{
var customers = db.Customer.ToList();
var json = JsonConvert.SerializeObject(customers);
return json;
}
}

474デフォルトの名無しさん:2012/09/19(水) 14:01:14.73
コードファーストならJsonIgnore属性使えるけど
モデルファーストなら知らん。
475デフォルトの名無しさん:2012/09/19(水) 14:43:22.23
相互変換するよろし
http://msdn.microsoft.com/ja-JP/data/jj593170
476デフォルトの名無しさん:2012/09/19(水) 16:02:13.87
質問です。
基底クラスから派生先のクラスの型を取得するにはどうすればいいでしょうか?

ただし、基底クラスのメソッドはStaticなメソッドになるのでthis.GetType()等は
使用できないです。
477デフォルトの名無しさん:2012/09/19(水) 16:05:52.60
staticメソッドは派生に関係無いので取得出来ません
478デフォルトの名無しさん:2012/09/19(水) 16:07:36.75
驚きの事実
DerivedType.StaticMethod();
はコンパイル後の中間言語上では
BaseType.StaticMethod();
になる
479デフォルトの名無しさん:2012/09/19(水) 16:07:44.94
class BaseClass
{
 void Hoge(){ var t = typeof(DerivedClass); }
}

これは?
480デフォルトの名無しさん:2012/09/19(水) 16:20:26.62
>>475
動かない

パラメーターが間違っています。(HRESULT からの例外:0x80070057 (E_INVALIDARG))
481デフォルトの名無しさん:2012/09/19(水) 17:06:00.76
nullを入れれないstring型ってないんですか?
482デフォルトの名無しさん:2012/09/19(水) 17:39:13.12
残念ながらありません
言語設計者も含め、導入したい/欲しいと思っている人は多いですが
色々問題があって今のところ入る予定もありません
483デフォルトの名無しさん:2012/09/19(水) 18:12:48.06
setterでnullならString.Emptyにしとけば?
484デフォルトの名無しさん:2012/09/19(水) 18:18:11.33
>>478
驚きでもなんでもないな
485デフォルトの名無しさん:2012/09/19(水) 19:20:25.00
普通の人にはね
486デフォルトの名無しさん:2012/09/19(水) 19:24:51.12
普通じゃない人には?
487デフォルトの名無しさん:2012/09/19(水) 19:47:59.32
てかstaticメンバ関数ってオーバーライドできんの?
staticだからvtblに入れとくわけにもいかないし
488デフォルトの名無しさん:2012/09/19(水) 20:03:48.25
staticメンバーも見方によってはクラスというオブジェクトのメンバーだとみなすことが可能だが、
そういう風にみなしたところで、クラスというオブジェクトを入れる変数は作れない、
つまり多態ができないんだからオーバーロードできても無意味でしょw

でもnewで隠蔽はできるよね確か。
489デフォルトの名無しさん:2012/09/19(水) 20:37:22.02
サブクラス化...
490デフォルトの名無しさん:2012/09/19(水) 21:27:07.87
ここにいるやつって学歴低そう
491デフォルトの名無しさん:2012/09/19(水) 22:14:20.84
そうだなあ偏差値66ぐらいじゃ2chでは何の自慢にもならんもんなあ
492デフォルトの名無しさん:2012/09/19(水) 22:22:01.11
偏差値71の俺なら自慢してもいいかな?
493デフォルトの名無しさん:2012/09/19(水) 22:23:15.38
そりゃすごいわ
494デフォルトの名無しさん:2012/09/19(水) 22:50:46.49
無事に義務教育を終えた俺なら
495デフォルトの名無しさん:2012/09/19(水) 22:59:08.60
490から特に低レベルな会話になったな
高校生?
496デフォルトの名無しさん:2012/09/19(水) 23:07:48.54
自己紹介ありがとう
497デフォルトの名無しさん:2012/09/19(水) 23:18:15.44
ご覧下さいこのボキャブラリの貧困さ
498デフォルトの名無しさん:2012/09/19(水) 23:18:23.65
>>495
悔しいの?
499デフォルトの名無しさん:2012/09/19(水) 23:23:36.20
このスレの低レベルな荒らしと言えば俺だったから
それを下回る奴が現れてしまって悔しいよ
500デフォルトの名無しさん:2012/09/19(水) 23:26:28.08
変ゼミ
501デフォルトの名無しさん:2012/09/20(木) 01:02:44.13
おい、だれかWindowsのログイン状態のとり方教えろ。
502デフォルトの名無しさん:2012/09/20(木) 01:12:19.41
(´・ω・`)…
503デフォルトの名無しさん:2012/09/20(木) 05:37:09.41
WindowsAPIのスレいって必要なAPIを教えてもらえ
それをP/Invoke
504デフォルトの名無しさん:2012/09/20(木) 07:41:26.39
WindowsAPIスレは数年前から機能してないんだよねw
505デフォルトの名無しさん:2012/09/20(木) 13:56:59.37
EF使い始めたのですがモデル版とコード版のそれぞれのメリット・デメリットを教えてください。
506デフォルトの名無しさん:2012/09/20(木) 14:55:34.10
DataAnnotationsの検証クラスを自前で実装することはできますか?
仮に出来るとして、全角で入ってきたら半角になおして正常と判断するといったことはできますか?
507デフォルトの名無しさん:2012/09/20(木) 23:15:54.52
廃棄されたMetroがこの先どうなるのか教えてください。
508デフォルトの名無しさん:2012/09/20(木) 23:52:47.59
公害になります
509デフォルトの名無しさん:2012/09/21(金) 00:01:09.36
(´・ω・`)またか…
510デフォルトの名無しさん:2012/09/21(金) 00:16:13.06
地下鉄だけにお先真っ暗やな(^^
511デフォルトの名無しさん:2012/09/21(金) 01:02:43.74
三球照代ってまだ生きてるんだろうか
512デフォルトの名無しさん:2012/09/21(金) 16:03:59.13
parallelとunsafeのコンボがやばすぎる
513デフォルトの名無しさん:2012/09/21(金) 16:04:13.41
何がヤバイんや
514デフォルトの名無しさん:2012/09/21(金) 16:33:13.91
長すぎるって嫌がられたのが早漏になった
515デフォルトの名無しさん:2012/09/22(土) 16:29:32.70
なんやこの過疎は
516デフォルトの名無しさん:2012/09/22(土) 16:42:56.35
いつもの自演君がいないのかな
517デフォルトの名無しさん:2012/09/22(土) 16:44:34.76
日付狂ってない?
今日書き込まれたのが昨日になってる
518デフォルトの名無しさん:2012/09/22(土) 16:45:59.95
なんだ・・・一日ずれただけか・・・
519デフォルトの名無しさん:2012/09/22(土) 17:10:32.17
C#の宿題スレがないので。。
ディレクトリAと、その配下のファイルをコピーしたディレクトリBがあるとします。
その後、ディレクトリB配下のいくつかのファイルを編集します。
そこで変更のあったファイルを抽出するLINQを書きたいのですが、1文で可能ですか?
520デフォルトの名無しさん:2012/09/22(土) 17:22:18.71
説明がよくわからないのでせめてダミーのフォルダ階層作って画像で出して
521デフォルトの名無しさん:2012/09/22(土) 17:33:52.26
new DirectoryInfo("APath").GetFileSystemInfos()
 .Concat(new DirectoryInfo("BPath").GetFileSystemInfos())
 .GroupBy(info => info.Name)
 .Where(g => g.Count() == 2
  && g.ElementAt(0).LastWriteTime != g.ElementAt(1).LastWriteTime)

なんかこんな感じ? じゃね
522デフォルトの名無しさん:2012/09/22(土) 17:45:19.18
>>520
説明下手ですいません
http://www.dotup.org/uploda/www.dotup.org3445440.png

>>521
ありがとうございます
ちょっと試してみます
523デフォルトの名無しさん:2012/09/22(土) 19:10:28.49
ファイルのハッシュみないでいいのん?
524デフォルトの名無しさん:2012/09/23(日) 03:04:58.13
スレッドA終了時に、スレッドAをnullにするにはどうしたらいいですか?
スレッドAの終端に自身をnullにするコードでもエラーはでないのですが、これで問題はないですか?
525デフォルトの名無しさん:2012/09/23(日) 03:27:39.81
?
526デフォルトの名無しさん:2012/09/23(日) 09:25:42.76
問題はないですよ
527デフォルトの名無しさん:2012/09/23(日) 09:29:50.55
設計的には恥ずかしすぎるけどいいよやってもキミがそれで満足なら
528デフォルトの名無しさん:2012/09/23(日) 10:05:11.73
お前らエスパーなの?
529デフォルトの名無しさん:2012/09/23(日) 12:01:45.76
VisualStudioってコードエディタやソリューションエクスryがタブみたいになってて
あっちこっち移動できたりするじゃない
あれってどうやって実装するの?
530デフォルトの名無しさん:2012/09/23(日) 12:16:05.35
>>524
これ、変数にNullが入るだけでスレッドは残ってんじゃないの?
531デフォルトの名無しさん:2012/09/23(日) 13:16:49.05
スレッドAの最後にnullにするっていうのは普通だと思うけど
532デフォルトの名無しさん:2012/09/23(日) 13:33:44.08
何のためにって聞かれて理由を答えられるなら別にいいんじゃね
技術的に間違っていない、誤解していないことが前提で
533デフォルトの名無しさん:2012/09/23(日) 13:46:07.63
>スレッドA終了時に、スレッドAをnullにするにはどうしたらいいですか?
>スレッドAの終端に自身をnullにするコードでもエラーはでないのですが、これで問題はないですか?

>スレッドAをnullにする
これの意味次第だな
スレッドを終了したいという意味なら、そんなことしなくても終了すべきときに終了するし

>自身をnullにするコード
これも意味不明だしなぁ
フィールドにnullを代入してるのかな
リソースを解放したい、みたいな意味なのかな



>>529
こうしてこうしてこうやるの
534デフォルトの名無しさん:2012/09/23(日) 13:50:52.08
スレッドが起動中かどうかをスレッド変数がnullかどうかで判断するっていう感じじゃないの
535デフォルトの名無しさん:2012/09/23(日) 13:51:43.58
というかスレッドの最後が終わったらスレッドは終了するっていうことを
お前らが理解してないんじゃないの
536デフォルトの名無しさん:2012/09/23(日) 14:10:01.24
というわけで最もシンプルに疑問を表現したコードプリーズ
537デフォルトの名無しさん:2012/09/23(日) 14:27:09.71
スレッドを終了することを「スレッドをnullにする」と表現した人は過去見たことがないし
Thread型変数にnullを入れるで合ってると思うわ

で、わざわざnullを代入することで思い当たるのが
条件として用いるというので一つ、GCのため(誤解が非常に多いが)で一つ
538デフォルトの名無しさん:2012/09/23(日) 16:33:31.68
5W1Hって大事だな、と思う。
539デフォルトの名無しさん:2012/09/23(日) 17:25:46.13
>>524
だからさー、なぜそれが必要なのか動機を書けつってんだろ?
そこがお前の抱えている問題の本質だろうが!!!
540デフォルトの名無しさん:2012/09/23(日) 17:26:53.38
うるさいだまれ
541デフォルトの名無しさん:2012/09/23(日) 19:12:24.96
542デフォルトの名無しさん:2012/09/23(日) 19:35:28.49
wwwwwh
543デフォルトの名無しさん:2012/09/23(日) 21:05:47.38
yhwh
544デフォルトの名無しさん:2012/09/23(日) 21:20:18.28
הוהי
545デフォルトの名無しさん:2012/09/23(日) 22:09:58.22
?ん?ん?????????
546デフォルトの名無しさん:2012/09/24(月) 00:07:17.16
>>539
Thread thread;

Public void Start()
{
if(thread==null)←ここの判断をnull条件としてスマートに行いたかったからです。
{
thread = new Thread(new ThreadStart(ThreadFunction)l
thread.Start()
}
}

Public void Start()
{
if(thread==null)
{
thread = new Thread(new ThreadStart(ThreadFunction)l
thread.Start()
}
else
{
if (!thread.IsAlive)←再帰呼び出しで解決しましたが、現場の実装はどうされてるのか気になったところの質問です。
{
thread = null;
Start();
}
}
}
547デフォルトの名無しさん:2012/09/24(月) 00:08:28.37
>>546
newしてんのに判定いらねーだろ
548デフォルトの名無しさん:2012/09/24(月) 00:10:15.11
>>546
Task使え
549デフォルトの名無しさん:2012/09/24(月) 00:12:57.63
連投ですまないですが、自身をnullとするの意味はこういうことです。
スレッドが終了する直前とはいえ、スレッドの実行中に参照をnullにして問題がないか気になったところです。

Thread thread;

public void Start()
{
thread = new Thread(new ThreadStart(ThreadFunction)l
thread.Start()
}

private void ThreadFunction()
{
//重たい処理

//スレッドの最終行
thread=null
}
550デフォルトの名無しさん:2012/09/24(月) 00:15:33.01
むしろ何故問題が発生すると思うんだ?
そこを解消しておかないとこの先nullを代入するたびに疑問になるぞ
551デフォルトの名無しさん:2012/09/24(月) 00:18:38.69
Thread作ってる初心者を見かけるたびに
そんなもの薦める記事書いた奴に殺意が沸く
552デフォルトの名無しさん:2012/09/24(月) 00:23:24.07
>>549
スレッド実行中に自身をnullなんかしたら
1つの処理が終了後に処理が必要な場合どうする?
553デフォルトの名無しさん:2012/09/24(月) 00:25:30.36
>>551
なんで?
554デフォルトの名無しさん:2012/09/24(月) 00:27:44.87
黙ってTask.ContinueWith使っとけ
完了してるかどうかはTask.IsCompleted見とけ
Taskは最初に一つ作れば十分だぞ
555デフォルトの名無しさん:2012/09/24(月) 00:27:53.91
俺はむしろ定期的に湧く>>551みたいなレスの方にこそ殺意を抱くよ。

スレッドの用途もいろいろで>>551みたいな単細胞が恐らく想定しているような用途だけじゃないのに。
例えば定期的にポーリングしてバッファをエンキュー/デキューするするような低レベルのIOで
Thred使わずに何を使うんだよ。
556デフォルトの名無しさん:2012/09/24(月) 00:29:49.01
ここが初心者スレだと分かってて喋ってるのかよく分からん奴がいるな
低レベル?
TPOを弁える能力が低レベルなんとちゃうの
557デフォルトの名無しさん:2012/09/24(月) 00:30:24.56
これは喧嘩になる。
558デフォルトの名無しさん:2012/09/24(月) 00:30:55.21
Taskは順不同で同時にいくらでも処理していいって場合しか使えないじゃん
HDDに対してやったら壊れるでしょ
559デフォルトの名無しさん:2012/09/24(月) 00:32:08.66
探りあいはいいから、さっさと結論教えろ
560デフォルトの名無しさん:2012/09/24(月) 00:34:19.03
>>558
さすがにそれは使い方を理解してないだろ。
順繰りにするためにTask.ContinueWithはTask<TResult>を返すんだよ。
結果を使って次をやるために。
561デフォルトの名無しさん:2012/09/24(月) 00:37:52.89
順不同がどうのと抜かした奴はここか相談室で前も見たが
同じ奴か?
562デフォルトの名無しさん:2012/09/24(月) 00:39:16.63
563デフォルトの名無しさん:2012/09/24(月) 00:41:20.95
>>552
1つの処理が終了後に処理が必要な場合っていうのがピンときませんが、
予測できないタイミングでnullになるってのは不味そうっていうのは分かります。
スレッド開始時の評価を行うような設計にしたいと思います。

>>550
今まで変数をnullすることしかなかったので。
スレッドの実行中にスレッドをnullしたらなんて考えたこともなかったです。
これは実装に困ってるというより、好奇心的な疑問ですかね?
564デフォルトの名無しさん:2012/09/24(月) 00:44:28.78
変数をnullにするってのは、その変数を介して何も参照できなくなる以上の意味は持たないよ
別に気にしなくていい

var t = Task.Factory.StartNew(()=>{});
foreach (var a in actions) {
 t = t.ContinueWith(a);
}

これで指定順に動かなかったっけ
動いたと思うけど
565デフォルトの名無しさん:2012/09/24(月) 00:49:48.26
>>564
それだと一つづつしかアクションが処理されないじゃないか
2つづつしたい場合、また変則的な条件ではTaskじゃできない
566デフォルトの名無しさん:2012/09/24(月) 00:52:15.43
>>565
普段の会話でも条件後出しで喜んでんの?
カスでクズで終わってンネ
567デフォルトの名無しさん:2012/09/24(月) 00:54:39.54
>>565
そりゃスレッドでもそうだろ
変則的な条件をスレッドだと自動実装してくれるのか?しねえよな
568560:2012/09/24(月) 00:56:06.29
>Taskは順不同で同時にいくらでも処理していいって場合しか使えない

って言われたから否定しただけだよ。
横から出しゃばってこないで下さいな。
569デフォルトの名無しさん:2012/09/24(月) 00:56:21.67
>>567
そうだよ、だからTaskは万能じゃないということ
例えばファイルをダウンロードする場合に
2つ同時にDLして終わったら次のファイルという風にやろうとすると
Taskではできない
570デフォルトの名無しさん:2012/09/24(月) 00:57:58.30
>>569
デリゲートの中で二個ずつDLすりゃいいだけだろ頭腐ってるのか?
571デフォルトの名無しさん:2012/09/24(月) 00:59:34.11
Taskが万能じゃなかろうが、その用途でThreadが上回ってる要素はカスほどもない。
諦めろ。寝ろ。
572デフォルトの名無しさん:2012/09/24(月) 01:03:06.59
>>570
デリゲートの中の処理は並列じゃないので
2個書いても、2個が同時にDLされるわけじゃない
573デフォルトの名無しさん:2012/09/24(月) 01:06:03.56
普通はセマフォ使うだろ
デリゲートの中で2個DLってそんな中途半端なことよく思いつくな
574デフォルトの名無しさん:2012/09/24(月) 01:09:32.42
ここにガイドがあります
基本的に、ここにある例ではThreadを使い、後はTaskやThreadPoolでいいです

http://msdn.microsoft.com/ja-jp/library/vstudio/6kac2kdh.aspx
>スレッド処理とアプリケーションのデザイン

>一般に、他のスレッドをブロックしない比較的短いタスクを特定のスケジューリングを指定せずに実行する場合、
>複数のスレッドを処理する最も簡単な方法は、ThreadPool クラスを使用することです。
> ただし、次に示すように、独自のスレッドを作成した方がよい場合も多くあります。

>タスクに特定の優先順位を設定する必要がある場合。
>タスクが長時間実行して、ほかのタスクをブロックする可能性がある場合。
>スレッドをシングルスレッド アパートメント内に配置する必要がある場合
>(すべての ThreadPool スレッドがマルチスレッド アパートメント内にある場合)。
>スレッドに関連付けられた、確立された ID が必要な場合。
>たとえば、そのスレッドをアボートまたは中断したり、名前で探索したりするには、専用のスレッドを使用する必要があります。
>ユーザー インターフェイスと対話するバックグラウンド スレッドを実行する必要がある場合、
>.NET Framework Version 2.0 では、イベントを使用し、ユーザー インターフェイス スレッドへの
>スレッド間マーシャリングによって通信する BackgroundWorker コンポーネントを利用できます。

そもそも、ThreadにしろTaskにしろ、コアな機能はデリゲートを実行することだけです
マネージャー系の機能は単なる付加機能です
できることそのものは大差ないんです
より適しているかの問題で、適していない方を使用する理由は、あなたがマゾヒストでない限り存在しません
575デフォルトの名無しさん:2012/09/24(月) 01:16:02.10
var queue = new ConcurrentQueue<Action>(actions);
Task.Factory.StartNew(() => {
 Action a;
 while (queue.TryDequeue(out a))
 {
  a();
 }
});
Task.Factory.StartNew(() => {
 Action a;
 while (queue.TryDequeue(out a))
 {
  a();
 }
});

次の条件はなんだい馬鹿ども。
576デフォルトの名無しさん:2012/09/24(月) 01:16:57.98
>>573
普通はConcurrentQueue使うと思いますよ。
知らないのかもしれませんけどね。
577デフォルトの名無しさん:2012/09/24(月) 01:18:07.82
>>574
やっぱりDLする場合はThread使ったほうがいいようだな
結局Taskを使う処理って画像処理など単純な関数を連続使用するときにリソースが少なくて済むってだけだよな
578デフォルトの名無しさん:2012/09/24(月) 01:20:24.84
Taskは順不同で同時にいくらでも処理していいって場合しか使えない
2つ同時にDLして終わったら次のファイルという風にやろうとすると
Taskではできない

今後何か言う度にこれを貼ってやろう。
579デフォルトの名無しさん:2012/09/24(月) 01:22:10.18
>>575-576
なにこれw
queueからなくなったら終わっちゃうじゃん
580デフォルトの名無しさん:2012/09/24(月) 01:23:45.48
>>579
普段の会話でも条件後出しで喜んでんの?
カスでクズで終わってンネ
581デフォルトの名無しさん:2012/09/24(月) 01:25:03.34
いやお前が条件なんだい?って言ったんだろ
続けろよ
582デフォルトの名無しさん:2012/09/24(月) 01:26:08.64
ConcurrentなQueue使ってるのに一度使いきったらエンキューしても実行してくれなくなる実装なんて
よくドヤ顔で出せたね
条件後出しとかそういうレベルじゃないでしょ センスの問題
583デフォルトの名無しさん:2012/09/24(月) 01:27:18.57
なんかこのスレ末期だよね
584デフォルトの名無しさん:2012/09/24(月) 01:28:16.78
>>582
MSDNで隣にBlockingQueueが並んでますから、それと取り替えればいいだけだよ。
んで、次は?
585デフォルトの名無しさん:2012/09/24(月) 01:31:13.44
Taskは順不同で同時にいくらでも処理していいって場合しか使えない>嘘でしたw
2つ同時にDLして終わったら次のファイルという風にやろうとするとTaskではできない>嘘でしたw
586デフォルトの名無しさん:2012/09/24(月) 01:33:05.20
>>585
その証明まだ?
587デフォルトの名無しさん:2012/09/24(月) 01:33:59.27
>>574にあるように、条件はどこかしらに書くんだから、そこ比べても無意味だろ。
同じなんだから。
お前もアホか?
588デフォルトの名無しさん:2012/09/24(月) 01:34:18.69
>>586
目医者池
589584:2012/09/24(月) 01:35:03.23
ねえ次は?
590デフォルトの名無しさん:2012/09/24(月) 01:36:43.02
荒れてるせいか、なんか負荷が…
591デフォルトの名無しさん:2012/09/24(月) 01:38:24.50
ファイルを非同期でダウンロードするソフト
・同時DL数はユーザーが任意に指定できる
・ファイルごとにDL優先順位を指定できる
・途中でDL停止させたり、DL中のファイル内容を閲覧できる
・随時HDDに書き込むと負担がかかるので、キャッシュしておいてDL完了後、ファイルに保存する
これらの条件をTaskを利用して仕上げなさい
592デフォルトの名無しさん:2012/09/24(月) 01:38:39.09
やはり過疎はいけない
過疎りすぎると本格的に頭のオカシイ人のスレになる
593デフォルトの名無しさん:2012/09/24(月) 01:40:33.58
質問者に絡んでるわけじゃないからまだいいよ
どこかのスレなんて…
594デフォルトの名無しさん:2012/09/24(月) 01:41:42.62
>>575
2つ並べただけとかw普通DLソフトなんて2つ同時と決まっているわけじゃないのに
こういう使えないコードよくかけるよな
595デフォルトの名無しさん:2012/09/24(月) 01:43:14.14
>>591
そんなものやるわけねえだろ馬鹿かお前w
何分考えた?なあ何分考えた?
596デフォルトの名無しさん:2012/09/24(月) 01:44:48.94
お、諦めたみたいだな

タスクに出来ないことがあったなんてなー
スレッド使ってるのと全然変わんないのに不思議だなー
597デフォルトの名無しさん:2012/09/24(月) 01:44:53.74
var queue = new ConcurrentQueue<Action>(actions);
foreach(var i in Enumerable.Range(0, 5)) {
Task.Factory.StartNew(() => {
 Action a;
 while (queue.TryDequeue(out a))
 {
  a();
 }
});
};
はい何個でも好きな数でどうぞ
598デフォルトの名無しさん:2012/09/24(月) 01:45:43.39
まだいい?これがまだいい?麻痺してんぞ
599デフォルトの名無しさん:2012/09/24(月) 01:46:39.94
>>596
すまねえ、実力が及ばなかったわ
スレッド使った回答ヨロシク
600デフォルトの名無しさん:2012/09/24(月) 01:48:11.13
全然任意に指定できないのが出てきちゃったな・・・
601デフォルトの名無しさん:2012/09/24(月) 01:48:50.74
>>597
>foreach(var i in Enumerable.Range(0, 5)) {
なにこれ?
for(var i=0;i<同時DL数;i++)
これじゃだめなの?
602デフォルトの名無しさん:2012/09/24(月) 01:49:18.39
この書き方はPython信者だ
603デフォルトの名無しさん:2012/09/24(月) 01:51:28.99
>>601
あー、自分で確証も持てないならレベルアップしてからにしてちょうだい?
指導者だったら確たる答えをもってこいって怒るわよん。
604デフォルトの名無しさん:2012/09/24(月) 01:54:30.95
この書き方が好きなブロガーがいたな
確か・・・
605デフォルトの名無しさん:2012/09/24(月) 01:57:08.06
いや、Pythonから来た奴は大方がこう書くよ
あの言語はループする時にfor i in xrange(n)としか基本書かないから
606デフォルトの名無しさん:2012/09/24(月) 02:11:54.57
JavaのBlockingQueueと同じものはないんですか?と聞かれて
昔「無い」って答えた記憶があるんだが、今はあるんだな
2008の頃だったから嘘は言っていないはずだが
607デフォルトの名無しさん:2012/09/24(月) 02:25:59.65
BackgroundWorkerでいいじゃん
608デフォルトの名無しさん:2012/09/24(月) 12:16:41.80
いやThread使うべきだろ

・指定順で1つずつ処理したい場合
・2つ同時にDLして終わったら次のファイルというようにしたい場合
・同時DL数はユーザーが任意に指定できる
・ファイルごとにDL優先順位を指定できる
・途中でDL停止させたり、DL中のファイル内容を閲覧できる
・随時HDDに書き込むと負担がかかるので、キャッシュしておいてDL完了後、ファイルに保存する

これらの操作に対応しなければならないだろ?
常識的に考えて
609デフォルトの名無しさん:2012/09/24(月) 12:55:07.61
並列処理を簡潔に書きたいならTaskがいいけど
ネットワーク通信など時間がかかる処理を、ただ非同期で処理したいって場合は
Threadの方が小回り利いていいな
610デフォルトの名無しさん:2012/09/24(月) 13:12:12.35
元の質問者が詳細な仕様を言ってないのに、想像で語っても無意味な自己満足だろ。
611デフォルトの名無しさん:2012/09/24(月) 13:13:26.76
フォルダアイコンなどをOS標準のものを使ったり
VSで使われているアイコンを使いたいんだけど大丈夫ですか?
あと、そういったアイコンはどこで見つけられますか?
ソフトは公開はすると思うけど、有償化する予定はありません
612デフォルトの名無しさん:2012/09/24(月) 13:16:01.18
フリーのアイコン集なんて山ほどあるんだからぐぐれ
613デフォルトの名無しさん:2012/09/24(月) 13:19:50.72
フリーだと汎用的なものしかなかったり
統一感がとれないので
614デフォルトの名無しさん:2012/09/24(月) 15:12:09.65
Windows用ソフトウェアであればOS内のアイコンの使用について
事実上MSは黙認しているようだな。VSのは知らんが

昔からアイコンに困ったらshell32.dllとかimageres.dllとかから抽出してる人は多い

実行時に欲しければSHGetFileInfoとかExtractIconとか
615デフォルトの名無しさん:2012/09/24(月) 15:29:07.68
OSに含まれるアイコン勝手に内蔵したら駄目に決まってんだろ
フリーソフトとか実行時にロードするのが常識
616デフォルトの名無しさん:2012/09/24(月) 15:29:45.06
実行時ロードならOKなん?
617デフォルトの名無しさん:2012/09/24(月) 16:09:57.76
ニコ動関連のツール探すとjavaやRubyで作られているのが多いけどC#だと無理なの?
例えばニコ生を保存したいんだけど
618デフォルトの名無しさん:2012/09/24(月) 16:12:53.02
できるよ
619デフォルトの名無しさん:2012/09/24(月) 16:14:12.42
【速報】 マイクロソフト「C#でiOSとAndroidアプリを開発できる機能を提供しようと思う」 →→→
http://engawa.2ch.net/test/read.cgi/poverty/1348453357/
620デフォルトの名無しさん:2012/09/24(月) 17:26:11.54
>>617
rtmpdumpを呼ぶだけだろ
621デフォルトの名無しさん:2012/09/24(月) 18:17:25.79
>>620
おお、すげぇ
やっぱ既に誰かが作っているんだな
622デフォルトの名無しさん:2012/09/24(月) 23:49:51.60
Graphics.DrawCurveに指定するPoint[]配列をList<Point>からSort()した結果をToArray()で
代入したいのですがX,Yの複数キーを指定する方法が教えてください。

Xが小さい方を優先して並び替えたいと思います。
delegateで指定するみたいですが、書き方がわかりませんでした。
623デフォルトの名無しさん:2012/09/24(月) 23:52:03.69
pointList.OrderBy(point => point.X).ToArray()

じゃないの
624デフォルトの名無しさん:2012/09/24(月) 23:53:51.37
625デフォルトの名無しさん:2012/09/24(月) 23:55:04.23
>>623
X優先で並べ替えた後Xが同じ場合はYでもソートしたいってことじゃないの?
626デフォルトの名無しさん:2012/09/24(月) 23:58:41.47
普通にYでソートした後にXでソートすればいいやん
627デフォルトの名無しさん:2012/09/25(火) 00:03:15.92
じゃあ
pointList.OrderBy(point => ((long)point.X) << 32 + point.Y).ToArray()

こんな感じ?
628デフォルトの名無しさん:2012/09/25(火) 00:04:06.60
ThenByも知らないし、安定ソートか確かめもしない>>626
629デフォルトの名無しさん:2012/09/25(火) 00:05:41.11
from p in pointList orderby p.X, p.Y select p だろ
630622:2012/09/25(火) 00:27:21.89
OrderByとThenByで実現できました。

ありがとうごさいました。
631デフォルトの名無しさん:2012/09/25(火) 00:46:54.26
全然スマートじゃないが、書いたんで上げるだけ上げてみる。
ttp://ideone.com/zTg5Z

途中ハマって大変だった。下手には端折っちゃダメだね・・・。Orz
632デフォルトの名無しさん:2012/09/25(火) 12:53:36.26
質問です。
ある装置をプログラムで動かしたいのですが、カタログにはこの装置はWindows DLLに対応しています
としか書いていませんでした。これは具体的にどのプログラムが使用できるということなので
しょうか。Visual Studioが使えれば嬉しいのですが・・・

よろしくお願いいたします。
633デフォルトの名無しさん:2012/09/25(火) 12:55:52.77
おいエスパー
早く答えて差し上げろ
634デフォルトの名無しさん:2012/09/25(火) 13:14:01.17
VSで使える
635デフォルトの名無しさん:2012/09/25(火) 13:15:08.72
>>634
本当ですか!ご回答ありがとうございますm(__)m
636デフォルトの名無しさん:2012/09/25(火) 13:39:48.07
>>633
エスパーなんて必要ないだろバカ
637デフォルトの名無しさん:2012/09/25(火) 14:17:00.85
自分以外みんなエスパーだったときー
638デフォルトの名無しさん:2012/09/25(火) 14:19:53.08
自分がアスペだという可能性が
639デフォルトの名無しさん:2012/09/25(火) 14:58:57.94
カタログ品のような装置に付属させるDLLで
VisualStudioで使えないWindowsDLLってどうやって作るの?
640デフォルトの名無しさん:2012/09/25(火) 15:07:28.41
VisualStudioで使う、という表現はおかくしね?
641デフォルトの名無しさん:2012/09/25(火) 15:23:34.00
>>639
クラスライブラリ
642デフォルトの名無しさん:2012/09/25(火) 15:28:06.75
画像一覧をリストボックスのような感じでサムネイル付きで一覧表示したいんだけど、オススメのコントロールありますか?
例)
サムネ:URL
サムネ:URL
サムネ:URL
643デフォルトの名無しさん:2012/09/25(火) 15:57:30.80
おいエスパー
早く答えて差し上げろ
644デフォルトの名無しさん:2012/09/25(火) 16:04:06.53
気に入ったのが無ければ自分で作れ
645デフォルトの名無しさん:2012/09/25(火) 17:42:43.45
リストボックス
646デフォルトの名無しさん:2012/09/25(火) 17:55:20.55
647デフォルトの名無しさん:2012/09/25(火) 18:01:08.86
>>646
これこれ、こういうのがやりたかった
ソース見てみます
648デフォルトの名無しさん:2012/09/25(火) 19:19:33.76
どうでもいいけど先に覚えるべきことが多すぎだろjk
649デフォルトの名無しさん:2012/09/25(火) 20:30:56.49
おいエスパー
早く質問して差し上げろ
650デフォルトの名無しさん:2012/09/25(火) 21:02:36.34
>おいエスパー
>早く答えて差し上げろ

5,7,5で語呂がいいなw
651デフォルトの名無しさん:2012/09/25(火) 21:15:09.89
おいエスパー
早く答えて差し上げろ

口に出してみたけどいいなw
652デフォルトの名無しさん:2012/09/25(火) 23:33:39.60
よくわからないことがあるんです
おしえてください
653デフォルトの名無しさん:2012/09/25(火) 23:53:32.70
中央線のレールを枕にしてれば全部解決するよ
654デフォルトの名無しさん:2012/09/26(水) 00:08:36.19
中央線
 レールを枕に
  すれば 解決
655デフォルトの名無しさん:2012/09/26(水) 00:09:32.96
652「問題文を推理し、それに対して解答せよ」
656デフォルトの名無しさん:2012/09/26(水) 10:00:05.03
おいエスパー
早く答えて差し上げろ
657デフォルトの名無しさん:2012/09/26(水) 16:23:37.58
既に起動している自作アプリと通信する方法はありますか?
検索ワードを送ってやりたいんだけど
658デフォルトの名無しさん:2012/09/26(水) 16:26:44.37
その自作の方に手を入れるのならIPCを使えば簡単
659デフォルトの名無しさん:2012/09/26(水) 16:35:58.90
>>658
まさにそれでした。
ありがとうございます。
660デフォルトの名無しさん:2012/09/26(水) 17:29:25.70
礼はいい
咥えて差し上げろ
661デフォルトの名無しさん:2012/09/26(水) 17:31:24.30
俺はいい
咥えて差し上げろ↓
662デフォルトの名無しさん:2012/09/26(水) 17:37:07.04
このスレ見てるとC#自体末期かもしれないという気分に襲われるな
663デフォルトの名無しさん:2012/09/26(水) 17:41:06.06
このスレだけで判断しているお前が末期
664デフォルトの名無しさん:2012/09/26(水) 18:58:17.53
他のスレを見ると、プログラミング自体末期だと思うだろうから見ないほうがいい
665デフォルトの名無しさん:2012/09/26(水) 19:05:45.27
今時2chで情報収集しているのが末期
666デフォルトの名無しさん:2012/09/26(水) 19:13:36.89
>>655
問題文:白紙
回答:ふざけるな!
667デフォルトの名無しさん:2012/09/26(水) 19:58:34.46
おいエスパー
早く答えて差し上げろ
668デフォルトの名無しさん:2012/09/26(水) 20:45:26.13
面白いと思ってるらしいので、もう少し我慢してくださいね
669デフォルトの名無しさん:2012/09/26(水) 21:45:22.56
おいエスパー
早く答えて差し上げろ
670デフォルトの名無しさん:2012/09/26(水) 22:09:37.23
いいんだよ
こんな趣味にカジュアルが首突っ込んでくるな
671デフォルトの名無しさん:2012/09/26(水) 22:14:11.08
首はいい
ちんこを咥えて差し上げろ
672デフォルトの名無しさん:2012/09/26(水) 22:28:10.88
ここで質問しているのって俺ぐらいしかいないんだな
半分ぐらいおれの質問なんだが
673デフォルトの名無しさん:2012/09/26(水) 22:45:51.15
そしてもう半分は俺
674デフォルトの名無しさん:2012/09/26(水) 22:58:40.52
いや俺
675デフォルトの名無しさん:2012/09/26(水) 23:07:10.19
質問してばっかりで全く成長が見られないわけだね
676デフォルトの名無しさん:2012/09/26(水) 23:50:09.44
質問です
何でそう思ったの?
677デフォルトの名無しさん:2012/09/27(木) 00:24:22.82
そうあってほしいという願望だろうね
惨めな人生を歩んでいる人の卑屈な心理が反映されている
678デフォルトの名無しさん:2012/09/27(木) 05:10:02.89
半分を占めるほどずっと質問しつづけてるなら
成長してないってことだよね
679デフォルトの名無しさん:2012/09/27(木) 06:00:47.39
Win32APIスレでやれ
680デフォルトの名無しさん:2012/09/27(木) 12:49:21.60
WPF使いにくくてかなわん
GDI進化させろボケカス
681デフォルトの名無しさん:2012/09/27(木) 12:52:36.38
>>678
このスレができてたった15日だけど
お前は2週間でプログラムを網羅できるの?
682デフォルトの名無しさん:2012/09/27(木) 12:56:28.34
おいエスパー
早く答えて差し上げろ
683デフォルトの名無しさん:2012/09/27(木) 13:18:51.68
ム板流行語大賞狙えそうだな
684デフォルトの名無しさん:2012/09/27(木) 13:38:53.67
死ねよ
685デフォルトの名無しさん:2012/09/27(木) 15:55:40.70
わからなくてもここで聞く気にはなれん
ググったほうが早いしその他の絡みまでわかるし

ググれないほどの馬鹿は死んだほうがいいよ
686デフォルトの名無しさん:2012/09/27(木) 16:06:02.88
そう言いながら常駐する>>685であった
687デフォルトの名無しさん:2012/09/27(木) 16:11:41.81
おいエスパー
早く煽って差し上げろ
688デフォルトの名無しさん:2012/09/27(木) 16:13:13.98
お前・・・スプーンも曲げられんの?
689デフォルトの名無しさん:2012/09/27(木) 16:44:00.57
スプーン曲げくらい余裕だろ
690デフォルトの名無しさん:2012/09/27(木) 18:20:03.76
>>686
お前のような馬鹿を指差して笑いたいから見てるんだよ
691デフォルトの名無しさん:2012/09/27(木) 19:11:51.96
692デフォルトの名無しさん:2012/09/27(木) 19:18:00.82
>>690
プッ(笑)
693デフォルトの名無しさん:2012/09/27(木) 19:47:46.58
>>690
暇そうだな
694デフォルトの名無しさん:2012/09/27(木) 19:53:03.76
>>690
おいエスパー
もっと答えて差し上げろ
695デフォルトの名無しさん:2012/09/27(木) 23:06:24.56
いつもの自演君が暴れてんのか
696デフォルトの名無しさん:2012/09/28(金) 02:45:17.52
こんな深夜にやらんでもよかろうに
697デフォルトの名無しさん:2012/09/28(金) 11:28:11.42
静的メソッドとして拡張メソッドとして追加ってできないのん?

// このHogeクラスはいじれない
class Hoge{...}

Hoge.KakuchouMethod();

みたいなー
698デフォルトの名無しさん:2012/09/28(金) 11:31:09.09
できてもわかりにくくなる以外に何の意味もないだろ
HogeHelperクラスでも作っとけ
699デフォルトの名無しさん:2012/09/28(金) 13:18:55.26
へーい
700デフォルトの名無しさん:2012/09/28(金) 13:45:53.84
拡張メソッドの可読性の高さは異常だから積極的に使っていくべき
なんならLINQみたいに別言語クラスまで作りこむべき
701デフォルトの名無しさん:2012/09/28(金) 18:53:24.14
クソスレ化してきたな。
702デフォルトの名無しさん:2012/09/28(金) 18:54:15.11
               __,,,,、 .,、
            /'゙´,_/'″  . `\
          : ./   i./ ,,..、    ヽ
         . /    /. l, ,!     `,
           .|  .,..‐.、│          .|
           (´゛ ,/ llヽ            |
            ヽ -./ ., lliヽ       .|
             /'",i" ゙;、 l'ii,''く     .ヽ
         / ...│  ゙l,  l゙゙t, ''ii_    :.!
        : /.._ /    ヽ \\.`゙~''''''"./
        .|-゙ノ/   : ゝ .、 ` .`''←┬゛
          l゙ /.r   ゛ .゙ヒ, .ヽ,   ゙̄|
       . | ./ l      ”'、 .゙ゝ........ん
       l  /     ヽ .`' `、、  .,i゛
       .l|  !    ''''v,    ゙''ー .l、
       |l゙ .il、  .l  .ヽ  .¬---イ
      .ll゙, ./    !            ,!
      .!!...!!   ,,゙''''ー       .|
      l.",!    .リ         |
      l":|    .〜'''      ,. │
      l; :!    .|'"    ...ノ,゙./ │
      l: l「    !    . ゙゙̄ /  !
      .| .|    !     ,i│  |
      :! .l.    }    ,i'./    |
      :! .|    :|    . /     .|
      :! |    ;!   "      .|
      :! !    │        │
      :!:|               ,! i ,!
      :! ,    .l,      / .l゙ !
      :! |    , l.     | .|  :,
    : v'" .!    |'i .ヽ,    ./ :!  .ヽ
 _, _/  /     .l  ゛ ._/ :l゙
703デフォルトの名無しさん:2012/09/28(金) 20:07:31.11
おいエスパー
早く答えて差し上げろ
704デフォルトの名無しさん:2012/09/28(金) 21:05:16.07
残ってる質問どれだよ
705デフォルトの名無しさん:2012/09/28(金) 22:59:29.56
おいエスパー
早く答えて差し上げろ
706デフォルトの名無しさん:2012/09/28(金) 23:32:41.51
壊れたオルゴール
707デフォルトの名無しさん:2012/09/29(土) 01:10:52.76
連呼マンはWin32APIスレの子だね
708デフォルトの名無しさん:2012/09/29(土) 01:45:14.12
あの、visual studioのメニューのデバッグ-例外で表示される、"例外が次の場合に中断する"の
インストール時のデフォルトってどういう状態だったでしょうか?
全てにチェック?
709デフォルトの名無しさん:2012/09/29(土) 04:54:24.67
  ,,... ---‐‐‐‐ 、     ___
./       ヽ 丶   . /     /     ̄  /
l: : : : : : : : : : : :.:.. l .../     /       /
|: : : : : : : : : : : :.:.:....|.../     /    _/
|______;;;;;;;l .  ̄ ̄ ̄
|;';';';';';';';';';';';';';';';' ミミ|
|;';';';';';';';';';';';';';';';' ミミ|  ...|─  |   |    |   /        ___
|;';';';';';';';';';';';';';';';' ミミ| ._|_  |   |       /  ____   /
|;';';r'",==、、ヽ;';' ミミ| .l_/      /      /         /\
|;';i 〃 .   iヽi;';' ミミ!         ./              /\___/ヽ
|;';| |丶__ノ l|;';';/f                          /''''''   ''''''::::::\
|';'| |Bull-Dog.||;';';| |                 +  |(●),   、(●)、.:| +
|;';|f゙ヽ^(⌒rつl|';';'| |./⌒)                   |  ,,,ノ(、_, )ヽ、,, .::::|
|;';|∞_ソY ◯゙゙).|';';'| | -')´                 + |   `-=ニ=- ' .:::::::| +
|';'|´  ~~~ ~~|';';'| |._,.イ\           +     \   `ニニ´  .:::/    +
|;';| ブルドック |';';'| |   .Tヽ        , -r'⌒! ̄ `":::7ヽ.`- 、   ./|
|;';| とんかつ. |;';';| |     / ノ`ー-、ヘ<ー1´|  ヽ | :::::::::::::ト、 \ (  ./ヽ
|;';| `ノ ━ ス |;';';'| !__,./       i l.ヽ! |   .| ::::::::::::::l ヽ   `7ー.、‐'´ |\-、
  ___________________________  __
 │六│六│六│七│八│◎│◎│◎│七│七│八│八│九│|九|
 │萬│萬│萬│萬│萬│◎│◎│◎│萬│萬│萬│萬│萬│|萬|
710デフォルトの名無しさん:2012/09/29(土) 09:30:57.76
>>708
全部チェックなし
711デフォルトの名無しさん:2012/09/29(土) 13:43:06.21
htmlの<table>で表記された下記の様に表示される表のデータ(あいうえお・・・の部分)を
列や行を指定して取得する方法を教えて頂きたいです。

列1 列2 列3 列4 列5
行1 あ  い  う  え
行2 お  か  き  く
行3 け  こ  さ  し
712デフォルトの名無しさん:2012/09/29(土) 14:02:05.96
行で分解して列で分解して要らない部分取っ払って配列に入れる
713デフォルトの名無しさん:2012/09/29(土) 17:32:44.45
List<List<string>> ListList;

void TR(){ ListList.Add(new List<string>()); }
void TD(string content){ ListList[ListList.Count - 1].Add(content); }

こんなかんじでしょ
714デフォルトの名無しさん:2012/09/29(土) 17:57:57.08
ListList
715デフォルトの名無しさん:2012/09/29(土) 18:01:36.79
>>710
ありがとうございます。
716デフォルトの名無しさん:2012/09/29(土) 18:48:23.01
staticなクラスがあって、それを利用するには自アプリのパスが必要な場合
普通ならメソッドの引数にパスを入れると思うのですが、それ以外に方法はありますか?
717デフォルトの名無しさん:2012/09/29(土) 19:12:27.00
staticじゃない普通のメンバーのマネージャークラスの名前どうしよう

NotStaticHogeManager的な名前を考えてくれ
718デフォルトの名無しさん:2012/09/29(土) 19:14:09.25
HogeManagerでいいんじゃ
719デフォルトの名無しさん:2012/09/29(土) 19:15:28.69
UtilityFunctionsとか?
スタティックの時は明示するとか。
720デフォルトの名無しさん:2012/09/29(土) 19:17:02.68
マネージャーは抽象度が低いから使うべきじゃない
マネージャーとは一体何をするのか
721デフォルトの名無しさん:2012/09/29(土) 19:18:58.82
>>716
アセンブリから取れるけど結合が強すぎてしまうので外部から渡すほうがいいよ
722デフォルトの名無しさん:2012/09/29(土) 19:26:03.72
スタティックメソッドをクラスと結び付けない方がいい
メソッドに必要な引数だけあれば
クラス全体は必要ないようにした方がシンプルになる

メソッド名をクラス名にしてメソッド名はRunとかでいい
723デフォルトの名無しさん:2012/09/29(土) 19:36:03.84
クラスに関係ないならパッケージに突っ込んだグローバルな関数でいいじゃんて思うけどJavaとかC#って何でクラスしかかけないようにしたんだろう
724デフォルトの名無しさん:2012/09/29(土) 19:39:06.66
グローバル関数を山ほど使った悪夢のようなプログラムを作れないようにするためじゃね
725デフォルトの名無しさん:2012/09/29(土) 19:50:22.90
>>723
君はPCでHDDのルートディレクトリに何でも突っ込む奴をどう思う?
726デフォルトの名無しさん:2012/09/29(土) 19:52:16.54
>>721
>>722
各クラス(List<T>にいれるようなdataクラスなど)でループなどで頻繁に利用されるファイルアクセスするクラスなので
数千のdataオブジェクト毎にnewして使うのはよくないと思ったのでstaticにしたのですが、
そうすると利用する各クラスにアプリパスを渡さないといけない、
一応各クラスでApplicationクラスでアプリパス取得することもできるけど
アプリパスは統一したいのでそれぞれで取得するのはおかしいし

Fileクラスのように作るべきか、FileInfoクラスのように作るべきか

staticなFileAccessクラス
class Hoge
{
public Data data{get {return FileAccess.ReadData(ApplicationPath,filename)}
}
List<hoge>をforeachなどで回したりする
727デフォルトの名無しさん:2012/09/29(土) 19:57:21.03
>>725
パッケージには入れるっていう部分は煽るのに都合悪いから読み飛ばした?
728デフォルトの名無しさん:2012/09/29(土) 20:04:03.35
>>726
FileInfo的に作って、そのインスタンスをstaticで持てばいい
729デフォルトの名無しさん:2012/09/29(土) 20:21:29.72
>>728
なるほど、それでやってみます
ありがとうございます
730デフォルトの名無しさん:2012/09/29(土) 20:29:19.68
>>720
タオル渡したりユニフォーム洗濯したり
731デフォルトの名無しさん:2012/09/29(土) 22:30:34.79
クラスしかかけないのはやっぱりインテリセンスの都合でしょう
732デフォルトの名無しさん:2012/09/29(土) 22:36:24.03
別に困らない
733デフォルトの名無しさん:2012/09/29(土) 22:48:01.25
>>727
そもそも君のレスなんて追いかけてない。
パッケージや名前空間の直下にメソッドを書ける仕様にすると、
少なくとも規則が複雑化する弊害がある。
734デフォルトの名無しさん:2012/09/29(土) 22:53:00.77
partialクラスに関数詰め込んでみればいいんじゃないかな
735デフォルトの名無しさん:2012/09/29(土) 23:14:00.25
>>728
うまくいかないんですが・・・

class Program
{
static Class1 c1a;
static Class1 c1b;
static void Main(string[] args)
{
c1a = new Class1();
c1b = new Class1();
c1a.FF = 10;
Console.WriteLine(c1b.A());//10にならない
Console.ReadKey();
}
}
class Class1
{
public int FF { get; set; }
public int A()
{
return FF;
}
}
736デフォルトの名無しさん:2012/09/29(土) 23:14:57.20
規則が複雑化しちゃいけないんじゃ
yieldとかasyncとかないほうが良かったんじゃないの
737デフォルトの名無しさん:2012/09/29(土) 23:42:08.11
まあ、いじめてやるなよ。
738デフォルトの名無しさん:2012/09/29(土) 23:58:19.13
>>733
アンカつけるのにレスちゃんと読まないって仕事でも仕様きっちり読み込まずに無駄にバグ出してるタイプだろ
739デフォルトの名無しさん:2012/09/30(日) 00:21:31.70
>>738
言っちゃ悪いけど、中二病的な恥ずかしい疑問を上から目線で語る馬鹿が何いってんの。
740デフォルトの名無しさん:2012/09/30(日) 00:25:36.71
>>735
そのソースのClass1::FFをスタティックにしないとならないよ。
741デフォルトの名無しさん:2012/09/30(日) 00:34:49.34
>>739
自分の見落としが恥ずかしいから論点ずらして棚上げしたね
742デフォルトの名無しさん:2012/09/30(日) 00:41:14.07
>>741
馬鹿かお前。
相手がどういうタイプの人間か、などという糞みたいな話に論点をズラしてるのはお前だろうが。
743デフォルトの名無しさん:2012/09/30(日) 00:41:29.37
>>740
それをするとこうなるんですが
c1a.FF = 10;//エラー
インスタンス参照でメンバー 'test.Class1.FF.get' にアクセスできません。代わりに型名を使用してください。
744デフォルトの名無しさん:2012/09/30(日) 00:44:33.64
>>742
そんなに悔しかったのか?
745デフォルトの名無しさん:2012/09/30(日) 00:48:13.08
そんなに悔しかったのか、だってさ。
ワンパターンの定型文が好きなのって馬鹿の特徴の一つだね。
そして、それを少しも恥ずかしいことだと思わず、むしろドヤ顔で嬉々として語るところも。
746デフォルトの名無しさん:2012/09/30(日) 00:48:45.05
>>743
なんかズレてる気がするけど、こうしたら通った。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 謎のスタティック___
{
    class Program
    {
        static Class1 c1a;
        static Class1 c1b;
        static void Main(string[] args)
        {
            c1a = new Class1();
            c1b = new Class1();
            Class1.FF = 10;
            Console.WriteLine(c1b.A());//10にならない 
            Console.ReadKey();
        }
    }
    class Class1
    {
        public static int FF {get;set; }
        public int A()
        {
            return FF;
        }
    } 
}
747デフォルトの名無しさん:2012/09/30(日) 00:53:08.04
>>745
見落とし悔しいね
恥ずかしいね
それを隠すためのレスがまた涙ぐましいね
もしかして恥の上塗り大好きさん?
748デフォルトの名無しさん:2012/09/30(日) 01:05:58.93
>>746
つまり???Class1.FF?=?10;感じでやらないとアプリパスを代入できないってことですよね
staticで問題なのはインスタンス化するときに初期化できないところで
そのクラスに絶対に必要なアプリパスを利用する側が忘れてしまう可能性があるということです
staticだからc1b.A()をいきなり使われて、エラーってなると思うんです
別でわざわざ代入してやるなら、最初から静的クラスにします
749デフォルトの名無しさん:2012/09/30(日) 01:06:52.48
何言ってんだコイツ
750デフォルトの名無しさん:2012/09/30(日) 01:13:46.58
静的クラスは通常パスが必要ですが
File.ReadAllText(path);

メソッドを使う前に、パスは別で取得しておくことでこういうメソッドを作った場合
public static Path{get;set;}
File.ReadAllText();
利用側がパスを事前に設定しておかなければエラーが出ます
利用する側は事前にそのような工程をする必要があることを知らないわけですから
設計として間違っていると思うんです
751デフォルトの名無しさん:2012/09/30(日) 01:14:21.52
そこまで初歩的な質問だとC#スレではスレ違いなレベルだなぁ
プログラミング初心者用のスレってあったっけ
こういうコンテキストに使うもんじゃないが素人脱するまではsingletonでもググレカス
752デフォルトの名無しさん:2012/09/30(日) 01:15:36.22
>>751
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
753デフォルトの名無しさん:2012/09/30(日) 01:15:45.49
>>748
それって、シングルトン最強伝説ってこと?
コンストラクタに食わせるとかじゃだめなの??

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 謎のスタティック___
{
    class Program
    {
        static Class1 c1a = new Class1(326);
        static Class1 c1b = new Class1(512);
        static void Main(string[] args)
        {
            //Class1.FF = 10;
            Console.WriteLine(c1b.A());//10にならない 
            Console.ReadKey();
        }
    }
    class Class1
    {
        public Class1(int V = 128) { FF = V; }
        public static int FF {get;set; }
        public int A()
        {
            return FF;
        }
    } 
}
754デフォルトの名無しさん:2012/09/30(日) 01:17:26.33
>>750知らないとはどういうことですか?
必要なことはドキュメント化して知らせるべきでは?
設計以前の問題に見えますよ。
755デフォルトの名無しさん:2012/09/30(日) 01:21:59.60
>>753
いろんな箇所で参照されるからそれぞれの場所でパス設定したくない
って言ってるからコンストラクタじゃNGじゃねーかな
コンストラクタでパスを指定したインスタンスをstaticで持って使いまわすって言うのなら別だけど
756デフォルトの名無しさん:2012/09/30(日) 01:22:48.00
>>753
できました
ありがとう

ちなみにシングルトンはprivateなコンストラクタなので引数指定できませんので間違ってますね

>>754
仕様書以前に、そんなトラップは用意しておかないようにするべきだと思います
757デフォルトの名無しさん:2012/09/30(日) 01:25:15.09
そんなどうでもいいことより ファイルがいろんなところから使われてるなら

class Hoge
{
Data Cache;

 public static Data GetData()
 {
  if(Cache == null){ Cache = FileAccess.Read(); }

  return Cache;
 }
}
キャッシュしないといけないんじゃないの
758デフォルトの名無しさん:2012/09/30(日) 01:25:14.77
あ''〜〜。まー、意図に添えて何よりだ。
759デフォルトの名無しさん:2012/09/30(日) 01:25:35.23
>>756
なんかシングルトンを勘違いしてるようだが
xxx.getInstance().setPath(パス);
760デフォルトの名無しさん:2012/09/30(日) 01:30:16.17
>>759
いやいや、それだと事前にClass1.FF = 10;をするのと変わらないじゃないですか
そのクラスのメソッドを利用するには必ずアプリパスが必要なんです
xxx.getInstance();だけでインスタンスを作れるので
xxx.getInstance().setPath(パス);をしない可能性が高いですよね?

FileInfoクラスを思い出してください
var fi = new FileInfo(fname);
かならず初期化するときにパスを通していますよね?
これは必須だからです
761デフォルトの名無しさん:2012/09/30(日) 01:30:54.23
ファイルアクセスが自発的にパスを取ってくるのはトラップじゃないのかね
ひとごとだからまあいいが…
762デフォルトの名無しさん:2012/09/30(日) 01:32:06.39
>>760
パスが設定されてなかったら普通assertじゃね?
763デフォルトの名無しさん:2012/09/30(日) 01:38:09.41
>FileInfoクラスを思い出してください
>var fi = new FileInfo(fname);
>かならず初期化するときにパスを通していますよね?

じゃあ初期化するときに必ずアプリパスを指定するのが正しいのではないの?
764デフォルトの名無しさん:2012/09/30(日) 01:38:24.91
>>757
それは実際にはしてます

FormクラスがClassMainを利用する
ClassMainはClassAとClassBを使ってFormとやり取りする
ClassAとClassBは相互に利用する
そしてすべてのクラスでDataクラスを利用します
ファイルデータはDataクラスが取得&保持しています
他のクラスではファイルデータを読みに行かないようにすることでシンプルな設計にしようと考えました
765デフォルトの名無しさん:2012/09/30(日) 01:44:58.91
>>761
どういう意味ですか?すごく興味があります
一応ファイルアクセスするクラスにパスを設定するのは
Dataクラスです
Form>ClassMain>ClassB>DataClass>static FileAccess.ReadData();
こんな感じです

>>763
と、思うのですが、DataClassが数千もあるのでFileAccessクラスは静的な方が望ましいと思うのです
アプリパス部分は一応解決したけど、メソッドは静的ではないのでやはりメモリが増加するんじゃないかと不安です
見えない部分なので、うまくいっているかどうかいまいち把握できない感じで悩んでいます

>>762
assertという単語は初耳です
766デフォルトの名無しさん:2012/09/30(日) 01:47:51.83
static Data Data = FileAccess.Read(固定FilePath);

これでいいんじゃないの固定なら
何を問題にしてるのか全くわからんね
767デフォルトの名無しさん:2012/09/30(日) 01:52:30.24
いわゆるひとつのバッドノウハウだよな。
768デフォルトの名無しさん:2012/09/30(日) 01:53:47.44
外部から入れられたほうが汎用的だけどね
使う前に初期化しなきゃいけないのが嫌だ! っていうのは全く理解不能だね
すりゃいいだけ
769デフォルトの名無しさん:2012/09/30(日) 01:55:28.04
これはひどい
偏った知識で物事を見すぎだ
770デフォルトの名無しさん:2012/09/30(日) 03:10:38.19
>>766
固定パスじゃないです。データオブジェクトにファイルパスが違います
アプリパス+各データオブジェクトのファイルパス
わからないのはアプリパスをプログラム全体で利用する場合
どうするのかがよくわかりません
FileAccessクラスを利用するすべてのクラスにアプリパスを分散するような設計って普通ですか?

>>768
確かにFileAccessクラスは汎用的になりますが、すべてのデータオブジェクトがアプリパスを保持するのって変じゃないですか?

>>753
のやり方をするとなると、一度データを入れたFFに対して何度も入れなおすことになりますよね?
newするごとに同じアプリパスを何度も代入・・・これって変です
771デフォルトの名無しさん:2012/09/30(日) 03:16:20.66
class DataPath
{
 static string AppDir = 固定
 public string Get(string filename){ return Path.Combine(AppDir, fileName); }
}

でいいんじゃないの
772デフォルトの名無しさん:2012/09/30(日) 03:18:52.99
>>771
パス用のクラスを一つ作って、それをすべてのクラスから利用するという理解でいいですか?
それならグローバルで利用できていいですね!
773デフォルトの名無しさん:2012/09/30(日) 07:19:33.85
  ,,... ---‐‐‐‐ 、     ___
./       ヽ 丶   . /     /     ̄  /
l: : : : : : : : : : : :.:.. l .../     /       /
|: : : : : : : : : : : :.:.:....|.../     /    _/
|______;;;;;;;l .  ̄ ̄ ̄
|;';';';';';';';';';';';';';';';' ミミ|
|;';';';';';';';';';';';';';';';' ミミ|  ...|─  |   |    |   /        ___
|;';';';';';';';';';';';';';';';' ミミ| ._|_  |   |       /  ____   /
|;';';r'",==、、ヽ;';' ミミ| .l_/      /      /         /\
|;';i 〃 .   iヽi;';' ミミ!         ./              /\___/ヽ
|;';| |丶__ノ l|;';';/f                          /''''''   ''''''::::::\
|';'| |Bull-Dog.||;';';| |                 +  |(●),   、(●)、.:| +
|;';|f゙ヽ^(⌒rつl|';';'| |./⌒)                   |  ,,,ノ(、_, )ヽ、,, .::::|
|;';|∞_ソY ◯゙゙).|';';'| | -')´                 + |   `-=ニ=- ' .:::::::| +
|';'|´  ~~~ ~~|';';'| |._,.イ\           +     \   `ニニ´  .:::/    +
|;';| ブルドック |';';'| |   .Tヽ        , -r'⌒! ̄ `":::7ヽ.`- 、   ./|
|;';| とんかつ. |;';';| |     / ノ`ー-、ヘ<ー1´|  ヽ | :::::::::::::ト、 \ (  ./ヽ
|;';| `ノ ━ ス |;';';'| !__,./       i l.ヽ! |   .| ::::::::::::::l ヽ   `7ー.、‐'´ |\-、
  ___________________________  __
 │六│六│六│七│八│◎│◎│◎│七│七│八│八│九│|九|
 │萬│萬│萬│萬│萬│◎│◎│◎│萬│萬│萬│萬│萬│|萬|
774デフォルトの名無しさん:2012/09/30(日) 09:36:26.78
>>772
みんなそのつもりでグローバルとかシングルトンとか言ってんのに頭の中の変な設計に凝り固まって全部否定してたじゃん
775デフォルトの名無しさん:2012/09/30(日) 09:56:32.21
プログラミング始めて数ヶ月ってとこか。
それ以上やってるなら今まで何やってたんだって話だな。
776デフォルトの名無しさん:2012/09/30(日) 12:38:35.80
回答者にとっては面倒なタイプだね
777デフォルトの名無しさん:2012/09/30(日) 14:09:40.14
ある別プロセスのAというフォームの全面に常にBという
フォームを表示し続けることは可能でしょうか?
同じプロセスだとFormのownerを設定すればいいのですが・・・

ちなみに常に全面のTopMostでの実装は今のところ考えて
おりません。

どなたか良い方法知りませんでしょうか?よろしくお願いいたします。
778デフォルトの名無しさん:2012/09/30(日) 14:14:05.95
興味で聞いておきたいんだが、その珍妙な仕組みは何故必要なんだ?
779デフォルトの名無しさん:2012/09/30(日) 14:19:12.24
>>777
目的のことはForm.Show(IWin32Window owner)で実現できる。

IWin32WindowのメンバはHandleプロパティーのみで、これは単にウィンドウのHWND
を返すだけ。

要するにプロセスAのターゲットのウィンドウのHWNDを何らかの方法で取得できればいい。
780デフォルトの名無しさん:2012/09/30(日) 14:29:05.27
>>779
Alt+Tab等で切り替えたらどうなるの?
Aのシステムメニューでウィンドウを移動したらどうなるの?
781デフォルトの名無しさん:2012/09/30(日) 14:33:24.36
試せば分かるよ。
それじゃ頑張ってね。
782デフォルトの名無しさん:2012/09/30(日) 14:33:55.10
>>780
全面って前面のタイポかとおもったら違うんだw
なら>>777は忘れて欲しい。

ついでにちょっと小言。
そういう一般的じゃない言葉を使う場合は、自分がどういう意味で使ってるか
ちゃんと縷々説明しなきゃだめ。
783デフォルトの名無しさん:2012/09/30(日) 14:34:33.47
>>778
AのソフトはC++で作られており、AがC#で作られた別プロセスとして
キックします。実際Aのソフトから起動されている(ShowDialogの様な感じ)
ように見せたいのです。

>>779
IWn32Windowを継承したクラスを作り、Handleプロパティの中でAのウィンドウ
ハンドルをFindWindowで取得し試してみました。

しかし、Aのウィンドウをタスクバーから選択するとBのウィンドウは隠れてしまい
ます。常にAの前にさえ表示させれるといいのですが、、

検証環境(WindowsXP、7)です。
784デフォルトの名無しさん:2012/09/30(日) 14:35:42.34
はあ?何だこいつ
785デフォルトの名無しさん:2012/09/30(日) 14:36:34.45
すいません、777ですが、全面はタイピングミスでした。
全面->前面が正しいです。

申し訳ありません。
786デフォルトの名無しさん:2012/09/30(日) 14:40:17.99
安価打ってない奴は安価打って喋れ
787777:2012/09/30(日) 14:42:50.36
すいません、以後アンカー打ってレスいたします。
788デフォルトの名無しさん:2012/09/30(日) 14:44:02.96
すまん、お前に言ったんじゃない
789デフォルトの名無しさん:2012/09/30(日) 14:46:09.76
ならAのウィンドウが前面に出たことを検知するしかないな
そこまでいくとスレ違いだからAPIスレにでも行け
790777:2012/09/30(日) 14:52:35.30
なるほどです。APIに頼る以外に解決策はなさそうなのですね、、

自分の考えた方法だと、AとBのウィンドウのZオーダーを比較して
ポーリングするしか思いつかなかったのですが、もしかしたらAPIに
Aのウィンドウがアクティブ(前面)にきたことを検知(コールバックなど)
する方法があるかもしれませんね。

さっそくAPIについて調べてきます!!
ありがとうございましたm(_ _)m
791デフォルトの名無しさん:2012/09/30(日) 15:00:05.80
>>774
>>771
いや、やっぱりおかしいですね
これだと更に見落とす可能性が高くなる

Fileクラスを利用するのに別のクラスにアプリパスを入れる必要があった場合
入れる必要が有ることに気づきますか?無理ですよね?
仕方がないのでFactoryクラスを作りました
792デフォルトの名無しさん:2012/09/30(日) 15:09:19.22
クラスライブラリなんだったら
class Config {
 public string AppDir { get; set; }
}
class MyFile {
 private Config config;
 MyFile(Config config) { this.config = config; }
 public void SomeMethod() { 処理(config.AppDir); }
}
こうやるのが常道
Configのインスタンスをグローバルに持ちたかったら
ライブラリ側じゃなくてアプリ側のクラスでstaticで持つ
793デフォルトの名無しさん:2012/09/30(日) 15:14:36.34
>>783
おかしいなと思って試してみたけど、やっぱりそんなことにはならないけど。
ちゃんと期待通りの動作をするよ。

タスクバーでオーナーのウィンドウを選択した場合でも、ちゃんと子のウィンドウは
その前面に表示される。

試したのはXPだが、Vista, 7でも同様の動作になるはず。
794デフォルトの名無しさん:2012/09/30(日) 15:15:22.86
>>792
確かにクラスライブラリです。なぜわかりましたか?
それなら問題無さそうですね。ありがとうございます
それとconfigは複数形のほうがいいと思います
795デフォルトの名無しさん:2012/09/30(日) 15:44:37.05
>>783
>AのソフトはC++で作られており、AがC#で作られた別プロセスとして
>キックします。実際Aのソフトから起動されている(ShowDialogの様な感じ)
>ように見せたいのです。

これの意味分かったやついる?
796デフォルトの名無しさん:2012/09/30(日) 15:54:36.91
Console.WriteLineの書き方で
Console.WriteLine("あ = {0}", str1)
のような書き方がありますが、
「あ」のところに変数(string型)を使いたい場合はどうやって書けば良いでしょうか?
797デフォルトの名無しさん:2012/09/30(日) 15:54:46.90
C++アプリのウィンドウAからC#製アプリのウィンドウBを
同一プロセスでShowDialogされているかのように表示したいって意味では?

設計的には親(C++)側の責任のような気がするが
798デフォルトの名無しさん:2012/09/30(日) 15:55:04.90
>AのソフトはC++で作られており、BはC#で作られています。
>AはBを別プロセスとしてキックします。
>AのプロセスでBのフォームを開いているように見せたいのです。
こうじゃね
でもBがAを起動してるようにも読めるな
799デフォルトの名無しさん:2012/09/30(日) 15:55:33.54
>>791
見落とすなんてありえない

テストもせずに納品しようとしているのか →してるんだろうな
そのプロジェクトの品質管理は大丈夫なのか →だめだろうな

以下は一般の開発者なら必ずやっていること

 ・クラス仕様書にパスのセットが必要なことを明記する
 ・パスがセットされずに呼ばれた場合メッセージとともにアプリケーションを終了させる

どこのパスにあるファイルを参照するのか仕様書に明記しないという選択はまずありえない
PGが読む詳細設計書には仕様書に結び付けてパス設定が必要なことを明記する
クラスが勝手にパスを設定するとしたらその後の仕様変更でファイル配置のパス階層が深くなったような場合に困る
パスが変わっただけで本来修正が不要と思われるDataクラスに修正が必要とか気持ち悪くないのかと
だから通常は外からパスを設定する
800デフォルトの名無しさん:2012/09/30(日) 15:58:24.42
>>796
意味分かんないから自分がこう書けたらいいなってコード書いて
801デフォルトの名無しさん:2012/09/30(日) 15:59:50.10
で、最初から引数に取ればいいだろって話に戻るわけ
802デフォルトの名無しさん:2012/09/30(日) 16:00:23.19
>>796
Console.WriteLine("{0} = {1}", str0, str1);

>>799
テストして動きゃいいって理屈なら静的型チェックとか
switchのbreak強制とかCLRの配列の境界チェックとか全部不要だぞ
803デフォルトの名無しさん:2012/09/30(日) 16:01:00.04
>>796
var a = "あ";
Console.WriteLine("{1} = {0}", str1, a);
でOK?
804デフォルトの名無しさん:2012/09/30(日) 16:04:38.60
>>799
確かにその通りですね
抽象度を高めるためにもクラス独自でパス取得はしないほうがいいですね
そもそも、そんなことを言った覚えはないですけど
805デフォルトの名無しさん:2012/09/30(日) 16:06:17.27
>>801
じゃなくて、

1.Dataクラスはアプリケーション内で唯一のファイルリソースにアクセスする存在なんだからシングルトンにする。
2.アプリケーション起動時にDataのインスタンスをgetInstance()してパスをセットする。

もちろんシングルトンとしなくてもstaticなクラス変数にパスをセットしてもいい
これをやればその後はどこからDataにアクセスしようがパスがセットされた状態でファイルを見に行ける
Dataの各メソッドの先頭でパスがセットされているかチェックする
セットされていない場合は例外を出すなりしてテスト時にミスに気付けるようにする
806デフォルトの名無しさん:2012/09/30(日) 16:10:13.33
>>805
流れは知らんけど気持ち悪い設計だなあ
807デフォルトの名無しさん:2012/09/30(日) 16:10:28.83
Factory使いたいって言ってんだから使わせてあげればいいじゃん
何かしら質問者の意見曲げないとお前たち生きておれんのか?
808デフォルトの名無しさん:2012/09/30(日) 16:11:27.68
>>805
クラスライブラリのクラスなんでしょ?
テストしづらいし、クラスライブラリごとに設定を持つことになってカオスになるよ
809デフォルトの名無しさん:2012/09/30(日) 16:12:54.26
気持ち悪いか?
シングルトンにするかは別として、俺が使ってるクラスもそんな感じだな

ただし各メソッドでチェックしたりはしない
単にコンストラクタが空パスを拒否するようにしておくのみ
810デフォルトの名無しさん:2012/09/30(日) 16:13:33.84
>>802
>テストして動きゃいいって理屈なら静的型チェックとか
>switchのbreak強制とかCLRの配列の境界チェックとか全部不要だぞ

お前のとこはプログラムをテストもせずに納品してるのか
上で言ってるのは全部C#ないしCLRでマネージされた領域についてのものだろ
このケースでの「パスが正しくセットされているか」という点で静的にチェックする機構がC#にあったか?
811デフォルトの名無しさん:2012/09/30(日) 16:14:20.66
>>810
だから引数にすれば強制できるだろということ
812デフォルトの名無しさん:2012/09/30(日) 16:17:56.48
>>805
いや、ファイルにアクセスするのはFileAccessクラスです
Form.ClassMainLib.ClassB.List<DataClass>[0].FileAccess.ReadData();
813デフォルトの名無しさん:2012/09/30(日) 16:22:16.63
>>812
カプセル化のかけらもない酷いコードだな
814デフォルトの名無しさん:2012/09/30(日) 16:22:23.55
ジェネリックプロパティ入りました
815デフォルトの名無しさん:2012/09/30(日) 16:23:28.15
>>800,802-803
ありがとう希望どおりにできました^^
816デフォルトの名無しさん:2012/09/30(日) 16:25:05.43
>>809
私もそのほうがいいです。staticクラスの各メソッドがチェックするなんて変ですね

My.Form.ClassMyWebAccesserLib.ClassMainWebAccesser.List<DataClass>[0].FileAccess.ReadData();

ClassMainWebAccesserはWEBアクセスの面倒な手順を自動化する汎用的な仕組み
ClassMyWebAccesserLibはClassMainWebAccesserをMyアプリで利用しやすくするためのラッパー
817デフォルトの名無しさん:2012/09/30(日) 16:25:27.47
ちなみにどこからがライブラリになる部分で、どこからが利用する側のコードになるの?
818デフォルトの名無しさん:2012/09/30(日) 16:26:05.03
>>816
階層掘るのって格好良く見えるよね。気持ちはわかるが
一般に、深く階層掘るコードは糞(名前空間は除く)。覚えておくといいよ。
819デフォルトの名無しさん:2012/09/30(日) 16:26:55.36
>>813
>>>812
>カプセル化のかけらもない酷いコードだな
いや、実際はパブリックにしてませんよ
わかりやすく構造を書いただけ
実際はFormからは>>816のClassMyWebAccesserLibのメソッドまでしか扱えません
820716:2012/09/30(日) 16:29:40.25
>>817
ClassMainWebAccesserがライブラリ
ClassMyWebAccesserLibがFormと同じ場所にあります
821デフォルトの名無しさん:2012/09/30(日) 16:31:34.95
えーとね、分かりやすくって言うんなら文法も糞もない変な識別子の羅列じゃなくて
クラス図に起こせるような情報を提示したほうがいいよ?
822デフォルトの名無しさん:2012/09/30(日) 16:33:39.22
keyのみが設定されてvalueが空欄のHashtableを順次埋める反復処理で
foreachの中でvalueを設定すると
「コレクションが変更されました。列挙操作は実行されない可能性があります。」
というエラーになりますがこういうのはどうやってやればよいでしょうか?
823デフォルトの名無しさん:2012/09/30(日) 16:33:54.70
もうDIコンテナ使えよ
神経質そうだからたぶん幸せになれるよ
824デフォルトの名無しさん:2012/09/30(日) 16:35:53.76
>>822
キーのコピーを作ってからやればいい
列挙中に列挙元を操作してはいけないので
825デフォルトの名無しさん:2012/09/30(日) 16:41:12.07
あとHashtableはもう止めろ
HaseSetにしろ
826デフォルトの名無しさん:2012/09/30(日) 16:44:07.61
HashTableのカウンターパートはDictionary`1ですが
827デフォルトの名無しさん:2012/09/30(日) 16:44:42.28
そうでしたね
828デフォルトの名無しさん:2012/09/30(日) 16:44:44.77
間違えた`2ね
829716:2012/09/30(日) 16:46:44.58
>>808
通常クラスライブラリってコンストラクタに引数渡すだけで使えますよね
830デフォルトの名無しさん:2012/09/30(日) 16:49:14.14
794 名前:デフォルトの名無しさん[sage] 投稿日:2012/09/30(日) 15:15:22.86
>>792
確かにクラスライブラリです。なぜわかりましたか?



なんて言ってる奴の台詞じゃねえよ
そろそろ死ぬべきだ、リアルに
831デフォルトの名無しさん:2012/09/30(日) 16:49:40.09
どんな世界の通常だ
832デフォルトの名無しさん:2012/09/30(日) 16:50:29.16
  ,,... ---‐‐‐‐ 、     ___
./       ヽ 丶   . /     /     ̄  /
l: : : : : : : : : : : :.:.. l .../     /       /
|: : : : : : : : : : : :.:.:....|.../     /    _/
|______;;;;;;;l .  ̄ ̄ ̄
|;';';';';';';';';';';';';';';';' ミミ|
|;';';';';';';';';';';';';';';';' ミミ|  ...|─  |   |    |   /        ___
|;';';';';';';';';';';';';';';';' ミミ| ._|_  |   |       /  ____   /
|;';';r'",==、、ヽ;';' ミミ| .l_/      /      /         /\
|;';i 〃 .   iヽi;';' ミミ!         ./              /\___/ヽ
|;';| |丶__ノ l|;';';/f                          /''''''   ''''''::::::\
|';'| |Bull-Dog.||;';';| |                 +  |(●),   、(●)、.:| +
|;';|f゙ヽ^(⌒rつl|';';'| |./⌒)                   |  ,,,ノ(、_, )ヽ、,, .::::|
|;';|∞_ソY ◯゙゙).|';';'| | -')´                 + |   `-=ニ=- ' .:::::::| +
|';'|´  ~~~ ~~|';';'| |._,.イ\           +     \   `ニニ´  .:::/    +
|;';| ブルドック |';';'| |   .Tヽ        , -r'⌒! ̄ `":::7ヽ.`- 、   ./|
|;';| とんかつ. |;';';| |     / ノ`ー-、ヘ<ー1´|  ヽ | :::::::::::::ト、 \ (  ./ヽ
|;';| `ノ ━ ス |;';';'| !__,./       i l.ヽ! |   .| ::::::::::::::l ヽ   `7ー.、‐'´ |\-、
  ___________________________  __
 │六│六│六│七│八│◎│◎│◎│七│七│八│八│九│|九|
 │萬│萬│萬│萬│萬│◎│◎│◎│萬│萬│萬│萬│萬│|萬|
833デフォルトの名無しさん:2012/09/30(日) 16:52:30.72
>>830
なめとんのかw
834デフォルトの名無しさん:2012/09/30(日) 16:53:25.82
アプリ側のクラスで

class AppliClass
{
 public static ClassLibraryClass CLC = new ClassLibraryClass(FilePath);
}

みたいにすればいいんじゃないの
835デフォルトの名無しさん:2012/09/30(日) 16:54:10.64
そうしろって何遍も言われてますさかい
836デフォルトの名無しさん:2012/09/30(日) 16:55:35.00
最近釣り質問しか来なくてつまらん
本物の質問は来ないのな
837デフォルトの名無しさん:2012/09/30(日) 17:15:37.25
  ,,... ---‐‐‐‐ 、     ___
./       ヽ 丶   . /     /     ̄  /
l: : : : : : : : : : : :.:.. l .../     /       /
|: : : : : : : : : : : :.:.:....|.../     /    _/
|______;;;;;;;l .  ̄ ̄ ̄
|;';';';';';';';';';';';';';';';' ミミ|
|;';';';';';';';';';';';';';';';' ミミ|  ...|─  |   |    |   /        ___
|;';';';';';';';';';';';';';';';' ミミ| ._|_  |   |       /  ____   /
|;';';r'",==、、ヽ;';' ミミ| .l_/      /      /         /\
|;';i 〃 .   iヽi;';' ミミ!         ./              /\___/ヽ
|;';| |丶__ノ l|;';';/f                          /''''''   ''''''::::::\
|';'| |Bull-Dog.||;';';| |                 +  |(●),   、(●)、.:| +
|;';|f゙ヽ^(⌒rつl|';';'| |./⌒)                   |  ,,,ノ(、_, )ヽ、,, .::::|
|;';|∞_ソY ◯゙゙).|';';'| | -')´                 + |   `-=ニ=- ' .:::::::| +
|';'|´  ~~~ ~~|';';'| |._,.イ\           +     \   `ニニ´  .:::/    +
|;';| ブルドック |';';'| |   .Tヽ        , -r'⌒! ̄ `":::7ヽ.`- 、   ./|
|;';| とんかつ. |;';';| |     / ノ`ー-、ヘ<ー1´|  ヽ | :::::::::::::ト、 \ (  ./ヽ
|;';| `ノ ━ ス |;';';'| !__,./       i l.ヽ! |   .| ::::::::::::::l ヽ   `7ー.、‐'´ |\-、
  ___________________________  __
 │六│六│六│七│八│◎│◎│◎│七│七│八│八│九│|九|
 │萬│萬│萬│萬│萬│◎│◎│◎│萬│萬│萬│萬│萬│|萬|
838デフォルトの名無しさん:2012/09/30(日) 17:34:10.75
>>837
邪魔なんだよマンガ脳の馬鹿が
839デフォルトの名無しさん:2012/09/30(日) 17:58:30.86
>>838
  ,,... ---‐‐‐‐ 、     ___
./       ヽ 丶   . /     /     ̄  /
l: : : : : : : : : : : :.:.. l .../     /       /
|: : : : : : : : : : : :.:.:....|.../     /    _/
|______;;;;;;;l .  ̄ ̄ ̄
|;';';';';';';';';';';';';';';';' ミミ|
|;';';';';';';';';';';';';';';';' ミミ|  ...|─  |   |    |   /        ___
|;';';';';';';';';';';';';';';';' ミミ| ._|_  |   |       /  ____   /
|;';';r'",==、、ヽ;';' ミミ| .l_/      /      /         /\
|;';i 〃 .   iヽi;';' ミミ!         ./              /\___/ヽ
|;';| |丶__ノ l|;';';/f                          /''''''   ''''''::::::\
|';'| |Bull-Dog.||;';';| |                 +  |(●),   、(●)、.:| +
|;';|f゙ヽ^(⌒rつl|';';'| |./⌒)                   |  ,,,ノ(、_, )ヽ、,, .::::|
|;';|∞_ソY ◯゙゙).|';';'| | -')´                 + |   `-=ニ=- ' .:::::::| +
|';'|´  ~~~ ~~|';';'| |._,.イ\           +     \   `ニニ´  .:::/    +
|;';| ブルドック |';';'| |   .Tヽ        , -r'⌒! ̄ `":::7ヽ.`- 、   ./|
|;';| とんかつ. |;';';| |     / ノ`ー-、ヘ<ー1´|  ヽ | :::::::::::::ト、 \ (  ./ヽ
|;';| `ノ ━ ス |;';';'| !__,./       i l.ヽ! |   .| ::::::::::::::l ヽ   `7ー.、‐'´ |\-、
  ___________________________  __
 │六│六│六│七│八│◎│◎│◎│七│七│八│八│九│|九|
 │萬│萬│萬│萬│萬│◎│◎│◎│萬│萬│萬│萬│萬│|萬|
840デフォルトの名無しさん:2012/09/30(日) 18:02:41.05
>>838



    ./  ̄ ̄ ̄ ̄\
    |          |
    |       (○ |
    i.ー―------―|
    |    ―  ― |
    |    ⌒  ⌒ |   ソースあんのかよソースwwww
    i     ,ノ( 、_)ヽ i
    |      トェェェイ |
    !     |┬-l|  |
    |      ー ´   |
    .|\ ____ /|
    ヽ     醤油  /
     ` ー ----‐‐ ´
841デフォルトの名無しさん:2012/09/30(日) 18:05:04.66
マンガ脳の恐怖、まで読んだ。
842デフォルトの名無しさん:2012/09/30(日) 18:24:07.73
今日スーパーの駐車場での話。
余裕で2台分擦れ違える幅があるのに、前方から来た車が普通に右側通行してきて、オレの車とお見合い。
「えっ!?」と思って周りを見ても空きスペースは無く、駐車するために車を右に振った訳でも無さそう。
それで左に行くように手で合図をしたのだが、対向車のオッサンはハンドル握って固まったまま、動こうとしない。
仕方ないからこっちが相手の車を避けたのだが、一体何だったんだろ。
車が左側通行なんて常識、小学生でも分かるだろうに。
843デフォルトの名無しさん:2012/09/30(日) 18:27:01.01
>>842
放射脳の恐怖
844デフォルトの名無しさん:2012/09/30(日) 19:55:15.26
                ピラッ
    |          |  ____人        |
    |          |  |   _,-っ/ \ 、     |
    |          |  | / ニ⊃ ,,-―\ ヽ   |
    |          |  / / r))フ/ -  - \\,  |
___|________|_ノ / ノ ノ´| (・) (・) ヽ人,_|_ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               /  /   |   〈    ノ    /   よっ、
              /  /    ヽ、 ワ   /   <     やってる?
             〈  イー―――`    ィ-- 、   \___________
             \____         ヽ
                     |       |  |
845デフォルトの名無しさん:2012/09/30(日) 21:12:51.75
久しぶりに来たらとんでもねえクソスレになっててわろた
846デフォルトの名無しさん:2012/09/30(日) 21:24:21.56
おかえり
847デフォルトの名無しさん:2012/09/30(日) 21:33:01.53
ん、APIスレじゃねえじゃん
素で間違えた
848デフォルトの名無しさん:2012/09/30(日) 21:39:09.38
              __,,,,、 .,、
            /'゙´,_/'″  . `\
          : ./   i./ ,,..、    ヽ
         . /    /. l, ,!     `,
           .|  .,..‐.、│          .|
           (´゛ ,/ llヽ            |
            ヽ -./ ., lliヽ       .|
             /'",i" ゙;、 l'ii,''く     .ヽ
         / ...│  ゙l,  l゙゙t, ''ii_    :.!
        : /.._ /    ヽ \\.`゙~''''''"./
        .|-゙ノ/   : ゝ .、 ` .`''←┬゛
          l゙ /.r   ゛ .゙ヒ, .ヽ,   ゙̄|
       . | ./ l      ”'、 .゙ゝ........ん
       l  /     ヽ .`' `、、  .,i゛
       .l|  !    ''''v,    ゙''ー .l、
       |l゙ .il、  .l  .ヽ  .¬---イ
      .ll゙, ./    !            ,!
      .!!...!!   ,,゙''''ー       .|
      l.",!    .リ         |
      l":|    .〜'''      ,. │
      l; :!    .|'"    ...ノ,゙./ │
      l: l「    !    . ゙゙̄ /  !
      .| .|    !     ,i│  |
      :! .l.    }    ,i'./    |
      :! .|    :|    . /     .|
      :! |    ;!   "      .|
      :! !    │        │
      :!:|               ,! i ,!
      :! ,    .l,      / .l゙ !
      :! |    , l.     | .|  :,
    : v'" .!    |'i .ヽ,    ./ :!  .ヽ
 _, _/  /     .l  ゛ ._/ :l゙
849716:2012/09/30(日) 21:41:13.31
AAって中学の時は楽しかったけど
おっさんにもなってこんなことやっている人がいるのかと思うと…
850デフォルトの名無しさん:2012/09/30(日) 21:47:00.10
Visual Studio 2010 はこれからどんどん安くなりますかね?
国際学生証で入れてたんですが、そのPCをリカバリかけないといけなくなってしまいました。
でも、当時ダウンロードしたはずのisoファイルが見つからず…。
851716:2012/09/30(日) 21:50:44.78
>>850
isoはダウンロードできるだろ
852デフォルトの名無しさん:2012/09/30(日) 21:51:43.01
2008と2005見る限り安くなることはない
なにせ2012はWin7でないと使えんのだぜ
853デフォルトの名無しさん:2012/09/30(日) 21:54:40.63
Trial版は製品版と同じ内容
あとはわかるな?
854デフォルトの名無しさん:2012/09/30(日) 21:54:45.15
>> 851
もう卒業しているので、もう一度ダウンロードするのは無理かと思われます。

>> 852
そうなんだ。知らなかった。

オークションを見てたらアカデミックパックが1万円以下くらいで出てるけど、
あれって社会人の自分でも買うことできるのかな…?
855デフォルトの名無しさん:2012/09/30(日) 21:56:19.92
>> 853
トライアルって90日過ぎても使える裏技あるんですか?
(ってこんなことを聞いたら怒られる?)
856デフォルトの名無しさん:2012/09/30(日) 21:59:48.19
>>856
まずWindowsが10本あれば900日使えるからその頃には次のVS出るでしょう
857デフォルトの名無しさん:2012/09/30(日) 22:02:49.39
>> 856

なるほど!
ある程度の手間はかけないといけないということですね。
858デフォルトの名無しさん:2012/09/30(日) 22:03:10.61
>>855
とりあえずVS2010 Ultimated Trial版のisoを落とします
インストールして起動します
あとはわかるな?
859デフォルトの名無しさん:2012/09/30(日) 22:08:36.38
>> 858
なんとなく。

とにかくisoファイルが無くなっているのがショックだったんですが、
しばらくトライアルで使うことにします。
家でUltimateが使えると思うと少し気分が復活しました。
860デフォルトの名無しさん:2012/09/30(日) 22:13:23.80
windowsの評価版を入手してインストール
vsの評価版を入手してインストール
officeの評価版を入手してインストール

SSDとこういうの持ってればその都度再構築すればいいだけだしな
http://www.ask-corp.jp/products/zalman/storage/zm-ve300.html
861デフォルトの名無しさん:2012/09/30(日) 22:16:01.17
パワーマシンならVMware player上に>>860をやればいい
パワーマシンじゃなければ実機に>>860を構築すればいい
862デフォルトの名無しさん:2012/09/30(日) 22:24:07.65
>> 860,861

そういうことなんですね。
とても勉強になりました。
863デフォルトの名無しさん:2012/09/30(日) 22:59:00.39
体験版何度も入れ直したら割るのと変わらないよな
864デフォルトの名無しさん:2012/09/30(日) 22:59:42.42
>>と数字の間にスペースを入れるのやめろ
865デフォルトの名無しさん:2012/09/30(日) 23:21:40.56
>>863
でも実際のところはなんどもやらねえけどなw
仕事で使うならお試しで終わって買うだろうし

趣味レベルだとVC++でwinアプリでも書かない限りはExpress版で十分だし
866デフォルトの名無しさん:2012/09/30(日) 23:22:35.34
>> 864
>> 864
>> 1-1000
867デフォルトの名無しさん:2012/09/30(日) 23:24:09.79
アルティメット使っているけどテスト実行やUMLやチームなんちゃらとか使ったこと無い
868デフォルトの名無しさん:2012/09/30(日) 23:27:15.88
学生の時バイト先の社員が俺の学生証を無断で使って
実売60万ぐらいするのを10万で買ってた
869デフォルトの名無しさん:2012/09/30(日) 23:28:31.58
.netアプリのUML図を作るツールは簡単に導入できたはずだけど
VC++アプリのUML図を作るツールは確かMSDNにログインしないと落とせないよね

つまりそういうことだよ

仕事でやる上では買うしかない
870デフォルトの名無しさん:2012/09/30(日) 23:29:04.39
下々の会社だとよくあること
871デフォルトの名無しさん:2012/09/30(日) 23:34:22.71
ぶっちゃけシリアルぐぐればいいだけ
872デフォルトの名無しさん:2012/09/30(日) 23:36:47.00
あうあう。
873デフォルトの名無しさん:2012/09/30(日) 23:38:43.13
大工とか医者とか、プロフェッショナルは、高価でも良い道具を求める。
無料の道具を探すのはプログラマくらいだ。
874デフォルトの名無しさん:2012/09/30(日) 23:39:49.53
なぜプログラマは無料に拘るのか?で一冊書けるな
875デフォルトの名無しさん:2012/09/30(日) 23:44:32.82
ソフトは製品並みの道具を親切な人が無料で作って公開してくれるのに対して
同じ機能ならコストのかからないほうを選ぶ それにいくらでもコピーが作れる
大工とかはそうはいかないからな
まさかのこぎりや金槌をコピーするわけに行かないし
876デフォルトの名無しさん:2012/09/30(日) 23:47:53.47
売り物のソフトウエアは基本的に高品質なので、その派生SKUのソフトウエアもまた高品質である!っていう前提だよね。
同じソフトには個体差って無いからね。
877デフォルトの名無しさん:2012/09/30(日) 23:53:43.54
無料で広く使われたソフトのほうが
ノウハウも蓄積するし信頼性も上がるしな
第一無料だし
878デフォルトの名無しさん:2012/09/30(日) 23:55:06.32
まあVSは許す
高い金払う価値があると思わせるだけの品質があるわ
無料のゴミとは比較にならん
879デフォルトの名無しさん:2012/09/30(日) 23:55:55.77
VS無料で使えるじゃん
880デフォルトの名無しさん:2012/09/30(日) 23:56:41.27
個人じゃ使わない機能詰み過ぎってのもある
881デフォルトの名無しさん:2012/09/30(日) 23:57:53.24
上位の高いエディションが売れてるからこそ
高品質な無料版出せるんだぞ
無料だけにしたら投資が減ってゴミになるわ
882デフォルトの名無しさん:2012/10/01(月) 00:36:54.87
OS以外赤字でーす
883デフォルトの名無しさん:2012/10/01(月) 00:45:09.26
Visual StudioがなきゃOSその他いくら新機能作っても誰にも使ってもらえずに全部無駄になっちゃうんだから
884デフォルトの名無しさん:2012/10/01(月) 00:49:11.36
OSより先にVSがあったわけじゃないしw
885デフォルトの名無しさん:2012/10/01(月) 00:53:13.00
新機能作ってもBorlandにサポートしてもらうために必死で説得したり大金を払ったりしなきゃいけないんだぜ
Visual Studioがないと
886デフォルトの名無しさん:2012/10/01(月) 09:21:05.18
Borlandまだあるのか?
887デフォルトの名無しさん:2012/10/01(月) 12:36:13.32
ボーランド「には」ない
888デフォルトの名無しさん:2012/10/01(月) 16:44:13.76
TronOSが禁止にさえならなければ、誰もWindowsなんて使わなかったのに
889デフォルトの名無しさん:2012/10/01(月) 17:05:24.86
あかんよ
TRONは発想が貧弱過ぎた
俺本持ってるからな
890デフォルトの名無しさん:2012/10/01(月) 18:48:23.31
お兄ちゃんへ

ちょっと調べものがしたくて、お兄ちゃんのパソコンを借りて
インターネットをしようとしたら、最初にここが表示されました。
こんなところをお兄ちゃんが読んだり、書いたりしているとは
知りませんでした。すごくびっくりして、お母さんにも見せたら、
お母さんは呆れたような顔をして部屋を出て行ってしまいました。

悪いと思ったけど、お兄ちゃんのメールも読んでしまいました。
見なければ良かったと思っています。

お兄ちゃんに直接は言いにくいのでここに書きます。
インターネットの掲示板を荒らすのはもうやめて。
今なら知らないふりもできるので・・・おねがいします。
お兄ちゃんは空港に行ったことなんてないでしょ。
もうやめて。

妹より
891デフォルトの名無しさん:2012/10/01(月) 18:50:51.48
空港に行ったことなかったのか・・・
892デフォルトの名無しさん:2012/10/01(月) 18:55:36.81
妹がいる奴はそれだけで既に勝ち組
893デフォルトの名無しさん:2012/10/01(月) 18:58:00.11
ちょっとしたウェブブラウザを作ろうと思っているのですが、
プロの人がソフト開発をする場合、まずどこから作り始めますか?
・インターフェイス、抽象クラス
・具象クラス
・クラス図
894デフォルトの名無しさん:2012/10/01(月) 18:59:10.78
息子の友達の姉さんがUFOキャッチャーで取ってきた
AKBフォトクロック(Type-A)を息子の友達からもらったけど
連続秒針なのに作動音がうるさくて電池を抜いちゃった…

ダメ元でゲームセンターに電話したら
交換してくれると言われたから
交換してもらったけど結局異音発生しまくりで
電池を抜いた… 異音は仕様だな…

コチコチ音がうるさいから連続秒針にしているはずなのに
連続秒針が連続時に異音が発生しちゃって本末転倒…

異音連続発生の連続秒針時計だったら
コチコチ秒針のほうが100倍まし…
895デフォルトの名無しさん:2012/10/01(月) 19:00:19.02
>>893
マザーボードにCPU装着するところから。
896デフォルトの名無しさん:2012/10/01(月) 19:01:41.17
今日ひとりで、いつも行く喫茶店でコーヒーを飲んでいたら。
一つ前の席にOL風の女性が座っていて、それが超美人!
僕はボーと見惚れていると彼女がハンドバックを持ったままトイレへ行きました。
5分位して帰って来たので、・・・もしやウンチでもしたのか?

今行けば彼女の便臭が嗅げるかも!・・・と思い僕もトイレに入りました。

ちなみにトイレは男女兼用です中に入ると香水の香だけでした。
失敗かと思い念のため汚物入れを開けると。

 あ り ま し た 。

温もりの残るナプ感激して広げると信じられない位の量の

 生 レ バ ー が ドッサリと乗っていました。

その場で全部口に含み僕はまだ暖かい生レバーを全部、口に入れてしまいました。
こんなに大量のレバーを一度に入れた事はありません。
彼女は会社から帰る途中ナプキンを取り替えられ無かったので
溜まっていた分が出たのか半端な量ではありません。
口が膨らんでしまう位の固まりです。

 僕はナプキンをポケットに入れ出ました席に戻ると彼女はまだ居ました。
僕の方を見ています。少し頬っぺたが膨らんでいましたが、
まさか僕の口の中に自分の生理が入ってるなんて思うはずがありません!
僕はゆっくりと彼女の顔を見ながらホカホカの生レバーを味わい食べました。
ズルッと喉を通りました。
897デフォルトの名無しさん:2012/10/01(月) 19:02:46.94
>>893
必要な機能を書き出すところから
898893:2012/10/01(月) 19:04:36.73
>>897
メモ帳などに日本語で書き出すのですか?
それともメソッドを書いていくのですか?
899デフォルトの名無しさん:2012/10/01(月) 19:14:52.40
要件定義, アーキテクチャ, 使用ライブラリ, 環境, UI, 色々検討して固まったら
とりあえずプロトタイプ作成
具象クラスからでも適当に
900デフォルトの名無しさん:2012/10/01(月) 19:33:15.91
>>899
用件B定義って何ですか?

UIって何ですか?


わからないので、わかりやすくおしえtwください
901デフォルトの名無しさん:2012/10/01(月) 19:42:12.13
ググれ
それで分からないんなら無理だから諦めろ
902デフォルトの名無しさん:2012/10/01(月) 20:21:43.31
まず絵を書いてどんな雰囲気のアプリか決めようぜ
903デフォルトの名無しさん:2012/10/01(月) 20:32:09.39
>>902
UIの絵を書けばいいですか?
904デフォルトの名無しさん:2012/10/01(月) 20:34:20.13
ブラウザならUIなんかどうでもいいだろ
何がしたいか全部書き出すのが先
905デフォルトの名無しさん:2012/10/01(月) 20:37:34.17
ターゲットとするユーザー層をまず確認しようか
906893:2012/10/01(月) 20:40:30.51
>>904
書きだすのはどういうふうにするのですか?

>>900は私じゃないです
907デフォルトの名無しさん:2012/10/01(月) 20:41:34.59
紙に書け
908デフォルトの名無しさん:2012/10/01(月) 20:42:06.82
C#以前の問題じゃないか
909893:2012/10/01(月) 20:48:53.71
欲しい機能をメモ帳に書いた後
次は何からはじめますか?

・インターフェイス、抽象クラス
・具象クラス
・クラス図
910デフォルトの名無しさん:2012/10/01(月) 20:49:04.85
>>908
C#って何ですか?
911デフォルトの名無しさん:2012/10/01(月) 20:49:53.04
912デフォルトの名無しさん:2012/10/01(月) 20:51:07.35
神頼み
村田製作所の社長に習って
913893:2012/10/01(月) 20:54:22.68
一応文法やデザインパターンなどひと通りみたけど
実用的なアプリケーションを作るまでの過程を書いているサイトがどこにもないです
こういうのはプロの人なら自然と学んでいくんでしょうけど
趣味でやっている人には全く見当がつきません

機能を書き出すようなことも今までしていませんでした
いきなり具象クラスを書いて、欲しい機能が途中で出てきて
でもそれを実装するだけの能力がなくて、また一から作り直したりしていたので
書き出す作業は必要だなと思いました
914デフォルトの名無しさん:2012/10/01(月) 20:55:58.21
思いついたことからやればいい
915デフォルトの名無しさん:2012/10/01(月) 20:58:15.95
TDDやれ
嫌でもそれっぽい設計になるし仕様もクリアになる
916デフォルトの名無しさん:2012/10/01(月) 20:58:34.20
ふつうすぐにでもコーディングするだろ。
もう飽きてきたな、このネタも。
917デフォルトの名無しさん:2012/10/01(月) 20:59:46.84
918デフォルトの名無しさん:2012/10/01(月) 21:09:54.07
>>913
趣味でやってるやつをなめすぎ
お前の頭が悪いだけ
C#なにそれとか言ってる時点でいい加減設計の話はスレ違いだから消えろ
919893:2012/10/01(月) 21:13:06.38
>>910の発言は私じゃないですよ
私の質問を邪魔しているひと
多分あなたです
920デフォルトの名無しさん:2012/10/01(月) 21:17:22.81
>>916
飽きるぐらい何年もこのスレに常駐している無能なお前が悪い
921デフォルトの名無しさん:2012/10/01(月) 21:21:10.62
>>919
C#の質問しろよ じゃなければ邪魔だから消えろと言ってんだが。
低脳が。
922デフォルトの名無しさん:2012/10/01(月) 21:23:39.02
>>920
おまえは放射脳か?
923デフォルトの名無しさん:2012/10/01(月) 21:26:31.93
>>921
お前の煽りのほうが不要
924デフォルトの名無しさん:2012/10/01(月) 21:29:48.85
おいエスパー
早く答えて差し上げろ
925デフォルトの名無しさん:2012/10/01(月) 21:30:21.44
俺が煽らなくても火がついてるのは久々だな
こういうのもたまには悪くない
926デフォルトの名無しさん:2012/10/01(月) 21:43:42.49
>>923
何のためにスレが分かれてるか分かる?分からないよなお前には。
低脳だからな。
927デフォルトの名無しさん:2012/10/01(月) 21:44:12.21
まずウェブブラウザを作らなくて済むようになる方法をどうにか考える
どうしても作らなきゃいけないなら一番特徴的な機能をまず作る
で、テストしてクオリティを上げていく
動かせないコードはいくら書いてもゴミ箱に捨てるハメになる可能性が高いから
とにかくまず動くようにする

インターフェースなんかを作り始めるのは愚の骨頂
どうしても必要に迫られるまで抽象化は避けないと
意味不明のコードになる
928デフォルトの名無しさん:2012/10/01(月) 21:45:53.44
>>926
低能じゃないよ、空気脳だよ
929893:2012/10/01(月) 21:57:06.98
>>927
クオリティを上げるとはどういうことですか?
機能を増やすということでしょうか?

>インターフェースなんかを作り始めるのは愚の骨頂
>どうしても必要に迫られるまで抽象化は避けないと
確かに抽象化しながら作っていると、いったいどのクラスが何をしているのか
よくわからなくなったりします
でも.NETライブラリやプロのコードを見ると
メソッド内のコードがほとんど1行だったりするんですが・・・
930デフォルトの名無しさん:2012/10/01(月) 22:00:40.76
>>929
コード量を減らして副作用のないコードにリファクタリングするとかじゃね?
完成したコード量は少ないほうがいいこと多いよ。
931デフォルトの名無しさん:2012/10/01(月) 22:05:03.67
>>929
機能を洗練させたり追加したりする

メソッド内のコードが一行なことと抽象化とは関係ないでしょ
932893:2012/10/01(月) 22:22:08.33
>>930
>>931
そこら辺がよくわかりません
リファクタリングするということは、インターフェイスや抽象クラスを作ったりして
継承、多様性を駆使しながらやることだと思ったのですが違いますか?
933デフォルトの名無しさん:2012/10/01(月) 22:27:53.82
共通のコードをメソッドにまとめたりするのもリファクタリングだぞ
後で絶対増えない分岐を多態に置き換えたりするのは馬鹿
934デフォルトの名無しさん:2012/10/01(月) 22:35:56.69
頭を割って、中を見てみたい
935893:2012/10/01(月) 23:03:02.73
>>933
>後で絶対増えない分岐を多態に置き換えたりするのは馬鹿
そんな極論めいた仮定に基づいて話しているレベルじゃないんですよ

例えばニコ動とyoutubeから動画をダウンロードするソフトを作る場合
(対応するサイトは今後増えやす可能性があるとする)

1つの具象クラスだけ作りますか?

それとも、どちらにも共通した抽象クラスを作ってから
具象クラスを作りますか?
936デフォルトの名無しさん:2012/10/01(月) 23:06:13.18
まあ妄想は過程ですらないからな
さっさと寝ろガキ
937デフォルトの名無しさん:2012/10/01(月) 23:06:52.79
そんなもん具象クラスだけで十分
分岐でやってられないほど増えてから考えろ
938デフォルトの名無しさん:2012/10/01(月) 23:24:01.40
分岐よりわかりやすい多態なんてこの世にはないから
多態自体がわかりにくさの根源
939893:2012/10/01(月) 23:30:56.04
どうやらオブジェクト指向を理解している人はいないようなので質問を取り下げます
940デフォルトの名無しさん:2012/10/01(月) 23:36:29.54
ああそうだ
俺はしっくりこないんでな
941893:2012/10/01(月) 23:38:33.50
>>936
私のは具体的な仮定ですが
>後で絶対増えない分岐を多態に置き換えたりするのは馬鹿
あなたの「後で絶対増えない分岐を」は妄想じみた仮定ですね
「絶対」なんて言葉を使う稚拙さは、その後の「馬鹿」を確定的にさせるための
条件でしか無く、頭の悪さが露呈されていますね
942デフォルトの名無しさん:2012/10/01(月) 23:39:21.63
過程を仮定と読んだのか?
一歩も踏み出してないって言ってんだよ馬鹿が
943893:2012/10/01(月) 23:40:36.55
>>940
私はプロに聞いているんであって
VB6で止まっているような人には聞いてません
944デフォルトの名無しさん:2012/10/01(月) 23:41:00.13
まず頭と首ついてるか確認してくれ。
あと人並みの知能があるかも頼む。
945893:2012/10/01(月) 23:42:18.95
>>942
主語が抜けてますよ
馬鹿っぽく見えるから日本語はちゃんと使えてからでかい口叩いたほうがいいですよ
946デフォルトの名無しさん:2012/10/01(月) 23:43:29.78
全レスはじまた
暇だねあんたも
947デフォルトの名無しさん:2012/10/01(月) 23:44:38.61
妄想に付き合わされるほうは迷惑だよ
100行プログラム書いてから喋って
948893:2012/10/01(月) 23:44:54.86
ここは馬鹿しかいなようなので他をあたります
949デフォルトの名無しさん:2012/10/01(月) 23:47:03.98
くるしゅうないぞ
950デフォルトの名無しさん:2012/10/01(月) 23:53:16.92
rubyばっかやってるとこうなるって見本だな
uyだよこいつ
951デフォルトの名無しさん:2012/10/02(火) 00:00:37.49
>>937
>>938
こういう奴らが使い回しの利かない糞みたいなコード書くんだよな
952デフォルトの名無しさん:2012/10/02(火) 00:10:29.23
前はもうちょっとまともな回答者がいたんだが
今は低能ニートしかいなくなったな
953デフォルトの名無しさん:2012/10/02(火) 00:10:34.20
一般に使いまわし効くコードのほうが少ないよ
使いまわし出来るように汎用的な
まだOOPに幻想抱いてんのかコード書くとたいていオーバースペックになる
954デフォルトの名無しさん:2012/10/02(火) 00:12:41.39
コードコンプリートには、再利用できるコードは頑張って書いて3割だと書いてあったな
素人が頑張ってどのくらいになるのか試して報告してくれたまえ
955デフォルトの名無しさん:2012/10/02(火) 00:22:07.61
後で必要になるかもしれないから…は死亡フラグ
956デフォルトの名無しさん:2012/10/02(火) 00:24:27.69
汚部屋住人と同じ考えだ
957デフォルトの名無しさん:2012/10/02(火) 00:25:32.36
そういう馬鹿の一つ覚えもどうかと思うけどね。
ケースバイケースだし程度問題でもある。
958デフォルトの名無しさん:2012/10/02(火) 00:27:27.14
後で使うかも
もったいないから残しておこう

↑2大デスマーチ製造機だな
再利用性も後方互換性も適度に切り上げないと地獄を見る
959デフォルトの名無しさん:2012/10/02(火) 00:31:28.19
増えるコメントアウト
960デフォルトの名無しさん:2012/10/02(火) 00:34:35.66
無視アノテーションが付けられたままのテスト
961デフォルトの名無しさん:2012/10/02(火) 00:41:36.85
とにかく多態はもうやめた方がいい
C#には関数型とラムダがあるんだからもっと直截に記述すれば良い
962デフォルトの名無しさん:2012/10/02(火) 00:44:22.56
gotoより遥かにコードをめちゃくちゃに分散させ読みづらくするのが多態
それでもラムダをいくつもいくつも書くよりシンプルになることもあるのでたまに使わざるをえないのが悲しい
963デフォルトの名無しさん:2012/10/02(火) 00:45:44.85
じゃあお前らなら
NikoDo.Download();
Youtube.Downlonad();
ってやっちゃうわけ?

抽象クラス作っておけば
DogaSite.Download();
一行で済むのに?
利用する側は動画サイトが増えてもほとんどコード変えずに
動画をダウンロードできるのに、それをやらないと?
そっちのほうがわかりにくいし、コードが無駄に長くなる
拡張性も保守性もない
964デフォルトの名無しさん:2012/10/02(火) 00:47:05.64
>>963
はいはい話する気ないからね
帰っていいよ
965デフォルトの名無しさん:2012/10/02(火) 00:47:57.01
くそうぜーなこいつ。
さっさとブラウザでも便座でも作ってろ。
966デフォルトの名無しさん:2012/10/02(火) 00:49:55.32
>>962
WebRequestクラスの内部も分散しまくっているが使いづらいか?
クラス内部を意識しないと利用できないような糞設計だからわかりにくいだけだろ
967デフォルトの名無しさん:2012/10/02(火) 00:51:45.11
あれが使いやすいと思うのか
C#しか触ったことなさそうですね
968デフォルトの名無しさん:2012/10/02(火) 00:52:32.56
Method(Func<DownloadedData> download)

もし必要ならこういうのをうけとればいいわけ
めちゃくちゃにクラスが増えてコードが分散して意味不明にならなくて済む

ほとんどの場合は

DownloadedData Download(string url)
Method(DownloadedData data)

これでいいし個別にやり方が違うなら

DownloadedData NicodoDownload(string url)
DownloadedData YoutubeDownload(string url)

Method(DownloadedData data)

これで済む
これじゃどうしてもダメだというなら上のラムダを使えばいい
多態は使っちゃダメ
969デフォルトの名無しさん:2012/10/02(火) 00:53:09.56
>>961
複数のViewに同じ機能をつけるにはどうするわけ?
それぞれのビューごとに機能をつけるの?w
970デフォルトの名無しさん:2012/10/02(火) 00:54:24.57
>>969
何言ってんのか全く分かんないね
971デフォルトの名無しさん:2012/10/02(火) 00:56:53.41
アスペの発言を解読しようとする時間ほど無駄なものはないって格言は本当だったんや
972デフォルトの名無しさん:2012/10/02(火) 00:57:19.25
当たり前だろ
理解して何か得すると思ったか?
973デフォルトの名無しさん:2012/10/02(火) 00:58:40.48
分かり合えると思っていた時期もありました
974デフォルトの名無しさん:2012/10/02(火) 01:01:18.76
だいたいWebRequestをHttpWebRequestにキャストするところから始まるからな
汎用化するところは自分で決めてラムダで与えて他の余計なメンバは捨てることでコードをシンプルにしたいし
こういうオブジェクト指向チックなやり方は結局無意味でわかりにくくなるだけだわな
975デフォルトの名無しさん:2012/10/02(火) 01:01:26.63
例えば、複数のFormの背景色を赤にする場合どうする?
普通List<form>に全部ぶっこんで一気に処理するだろ?
そういうことやらないのか?
976デフォルトの名無しさん:2012/10/02(火) 01:05:54.85
WebRequestを引き合いに出されるとなんともいえないな
あれは誰がどう見ても使いにくいだろ
もっと他の例にしろよ…
977デフォルトの名無しさん:2012/10/02(火) 01:07:28.93
>>968
マジで言っている意味がわからん

>DownloadedData Download(string url)
これは想像つくが
>Method(DownloadedData data)
これって何?何をしているの?
dataを加工するメソッドか?
加工の仕方もそうだが、ダウンロードの仕方がまず違うだろ?

DownloadedData NicodoDownload(string url)
DownloadedData YoutubeDownload(string url)
このふたつのメソッドの内部コードはおそらく8割が同じコードのはず
基本クラス作って共通部分を1個にまとめた方が良くないか?
978デフォルトの名無しさん:2012/10/02(火) 01:08:59.55
>>976
てか、ほとんどのクラスが派生だろ
979デフォルトの名無しさん:2012/10/02(火) 01:09:07.52
Action[] setColorRedActions = new Action[]{ () => { form1.SetColor(Color.Red) }, () => form2.Color = Color.Red, form3.Color = 0xff000000, ... }

こういうふうにすればFormの馬鹿みたいにたくさんある他のメンバへのアクセス権を無闇に外部に露出しなくて済むから問題をシンプルに表現できるし
あらかじめ先を読んで継承関係を作っておいたりシグネチャを合わせたりするような難題に取り組まなくて済むから
こっちの方がいいんだよ
980デフォルトの名無しさん:2012/10/02(火) 01:10:48.95
>>977
共通なコードがあるなら

NicodoDownload(string url)
{
  ...
  CommonProcess(arg)
  ...
}


YoutubeDownload(string url)
{
  ...
  CommonProcess(arg)
  ...
}

これでいいでしょ
それでもダメな入り組んだ再利用をするならラムダを渡せばいい
981デフォルトの名無しさん:2012/10/02(火) 01:12:14.10
犬と猿が乳繰り合ってるよママ〜
982デフォルトの名無しさん:2012/10/02(火) 01:12:38.90
わかんね
ActionとかFuncとかそんなの習ってないぞ
デザインパターンのサイトもJavaばっかりだから
デリゲートなんて出てこないしさ
983デフォルトの名無しさん:2012/10/02(火) 01:14:29.35
言い訳がしょべえんだけど
984デフォルトの名無しさん:2012/10/02(火) 01:14:53.14
デザパタとかオブジェクト指向は
ラムダがなかった時代に高階関数をエミュレートするために無理やり作られた
バッドノウハウ集でしかないんだよ
985デフォルトの名無しさん:2012/10/02(火) 01:23:35.86
>>980
それにさ、1つまともなソフト作るとなると
ただダウンロードできればいいってもんじゃないんだが
urlだけ引数にとっても、更新がなかった場合の処理
具体的には、キャッシュを読み込むか、ローカルからデータ読み込むかってなるし
それにデータはニコ動とようつべで別々に保存しているわけで
それをどうやって対応するわけよ?

よくある解説サイトみたいに要点だけ合致するようなのじゃなくて
実務レベルで実際にどうするかが知りたいんだけどね
ちゃんと意識して書いてる?
986デフォルトの名無しさん:2012/10/02(火) 01:24:34.69
>>985
殆どの場合は共通な処理をきちんと一つ一つ関数に書いていって必要なところに分岐を書けば一番シンプルにかけるよ
987デフォルトの名無しさん:2012/10/02(火) 02:17:13.52
MVVMの最小構成のサンプルと詳しい解説している日本語サイトないでしょうか。
モデル・ビュー・ビューモデルの蘊蓄ばかりで、挙げ句の果てにExpression Blendないとダメとかふざけんなって感じです。
View < ViewModel < Modelは理解できたんですが、それぞれのレイヤーに書いていい物は何なのか?何を書くべきなのか?を簡単にわかりやすくサンプルと一緒に解説してるサイトが皆無なんですが・・・。
そもそもVS2012でもまともにテンプレートがないとか使って欲しいのか欲しくないのかM$が理解できません・・・。
988デフォルトの名無しさん:2012/10/02(火) 02:35:20.01
実務のことは実務やれば分かるよ
働け
989デフォルトの名無しさん:2012/10/02(火) 02:38:19.54
>>987
ここよりはWPFスレで聞いた方が適してるのでは?
そもそもWPF流行ってませんので無駄だと思いますが
990デフォルトの名無しさん:2012/10/02(火) 02:38:55.66
パターンなんか死ねばいいんだよ
なにがMVVMだよ
991デフォルトの名無しさん:2012/10/02(火) 02:43:01.79
>>968
このやり方やるとメソッド名がとてつもなく長くなるわw
992デフォルトの名無しさん:2012/10/02(火) 02:54:08.22
マイクロソフト謹製クソの山だよ
993デフォルトの名無しさん:2012/10/02(火) 03:32:36.59
動きゃいいんでないの
994デフォルトの名無しさん:2012/10/02(火) 09:23:17.28
>>987
http://msdn.microsoft.com/en-us/library/gg406140.aspx
このMVVM関連の項が最高峰
日本語は無い
995デフォルトの名無しさん:2012/10/02(火) 14:17:17.56
なんで2chは廃れたんですか?
996デフォルトの名無しさん:2012/10/02(火) 15:55:18.46
C#のプロジェクトで自作のライブラリーをダイナミックリンク(*.dll)じゃ無くて
スタティックリンク(*.lib)で管理することは可能ですか?

ライブラリは複数のプロジェクトで使いたいけど、
できれば配布は単一のモジュールにしたいです。
997デフォルトの名無しさん:2012/10/02(火) 16:01:10.20
ソースを配ればいい
998デフォルトの名無しさん:2012/10/02(火) 16:12:50.54
999デフォルトの名無しさん:2012/10/02(火) 16:30:31.90
>998
thx
でも、NET3.0以上をサポートして無いみたいに見えるんですが
できれば3.0以上もサポートしたいです。
1000デフォルトの名無しさん:2012/10/02(火) 16:33:31.84
次スレ立てました
ふらっとVisual C#,C♯,C#(初心者用) Part98
http://toro.2ch.net/test/read.cgi/tech/1349163087/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。