5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

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

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

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

■前スレ
ふらっとC#,C♯,C#(初心者用) Part73
http://hibari.2ch.net/test/read.cgi/tech/1302422250/

■関連スレ
C#, C♯, C#相談室 Part66
http://hibari.2ch.net/test/read.cgi/tech/1303889653/
ミスターサタンのC#相談室 
http://hibari.2ch.net/test/read.cgi/tech/1092656075/
VB.NET質問スレ(Part36)
http://hibari.2ch.net/test/read.cgi/tech/1301828549/
くだすれC++/CLI(初心者用)part2
http://hibari.2ch.net/test/read.cgi/tech/1268613679/

230 :デフォルトの名無しさん:2011/05/08(日) 06:43:52.78
え?

231 :デフォルトの名無しさん:2011/05/08(日) 07:51:58.14
>>229
スレタイ

232 :デフォルトの名無しさん:2011/05/08(日) 09:30:45.69
suretai?

233 :デフォルトの名無しさん:2011/05/08(日) 09:31:31.14
VBerはdynamic好きだと思いますよ
OptionStrict Offの動作に似てるから

せっかくOptionStrict Onが普及したのにDynamic使うにはOffにしなきゃならんってアホか

234 :デフォルトの名無しさん:2011/05/08(日) 09:44:50.18
スレ違いだが熟練VBerは真っ先にOption Strict Onにすると思う

235 :デフォルトの名無しさん:2011/05/08(日) 11:10:23.66
>>181
WebProg板向けっぽいけど素直にLoginFailedだけ返せばいいんじゃない?
下手にUserNotFoundとか返してしまうと総当たりでリクエストされて
登録済みユーザ名を割り出されてしまったりするかもしれないし。
サービスのクライアント側で「ログインに失敗しました。未登録の場合は新規登録してください。」ってやってもらえばいいと思う。

236 :デフォルトの名無しさん:2011/05/08(日) 11:32:15.88
>>234
するけど、それはその方が安全だからというより政治的理由。
現実には熟練者にとってはStrict Offの弊害はまずない。(初心者にはある)

237 :デフォルトの名無しさん:2011/05/08(日) 11:35:57.07
俺はプロじゃないから知らないけど
習得が容易なことがメリットの言語にそんな熟練者が要るのか

238 :デフォルトの名無しさん:2011/05/08(日) 11:39:21.00
Silverlightのdynamic使ったHTMLブリッジなんか超便利だぞ
まるでインラインでJavaScriptを書いてるみたいにHTMLを操れる

239 :デフォルトの名無しさん:2011/05/08(日) 11:46:24.35
VB熟練者は不要だけど、CLR熟練者がいないとVB案件は泥沼になりがち

240 :デフォルトの名無しさん:2011/05/08(日) 11:50:13.32
VBってExcel操作とかやりたかったらそこだけPartialとか使ってファイル分けて
Option Sttict Offにすんの?
そうなら欠陥すぎるだろ

241 :デフォルトの名無しさん:2011/05/08(日) 11:50:19.87
VBで泥沼になったことはないな。VBAなら余裕であるけどw

242 :デフォルトの名無しさん:2011/05/08(日) 12:03:58.55
頭数揃えるためのVBとPHP

243 :デフォルトの名無しさん:2011/05/08(日) 14:15:17.39
プログラム中でmp3を再生したいのですが、再生の他に以下のことも出来る必要があります。
・音量調整
・任意の位置から再生
・現在の再生位置取得

これらをやりたい場合、何を使用するのが適当でしょうか?

244 :デフォルトの名無しさん:2011/05/08(日) 14:31:50.35
AxWMP
MCI
WPF
Silverlight
DirectX Audio

245 :デフォルトの名無しさん:2011/05/08(日) 14:32:04.23
ググレカス

246 :デフォルトの名無しさん:2011/05/08(日) 14:45:42.04
DirectShow あたりをお勉強すればいいんじゃね。

247 :デフォルトの名無しさん:2011/05/08(日) 14:49:43.42
DirectXってGraphics以外は全部非推奨廃止予定だよ

248 :デフォルトの名無しさん:2011/05/08(日) 14:58:43.40
>>247いつどこで誰が何故どういう手段でそんなコト言ってるの?

249 :デフォルトの名無しさん:2011/05/08(日) 15:04:39.86
DirectShowはPlatformSDKに移されたから関係ねーです

250 :デフォルトの名無しさん:2011/05/08(日) 15:09:06.78
http://msdn.microsoft.com/en-us/library/ee416796(v=VS.85).aspx
ゲーム開発には使うな だそうだ
位置付けが変わったんだな

251 :デフォルトの名無しさん:2011/05/08(日) 16:26:56.98
じゃあどうしろってんだよ!

252 :デフォルトの名無しさん:2011/05/08(日) 16:31:44.73
>>251
つLINQ

253 :デフォルトの名無しさん:2011/05/08(日) 19:07:19.20
visual C# のエディタに関する質問です。
コードを書く際、通常であれば 「 I 」みたいなマークでコードに文字を挿入できると思うのですが、
いつのまにか 「 長方形 」のような形のマークに変化していました。
ちょうど、ターミナル(Console)でよくみるようなやつです。

この状態で書きこむと、もともとあったコードに挿入できず、
どんどん上書きされていってしまうので、かなり不便です。
環境設定などを見てみたり、ググったりしてみたのですが、戻し方が分からないため
質問いたしました。よろしくお願いします。

254 :デフォルトの名無しさん:2011/05/08(日) 19:08:24.74
挿入モードって分かるかい
古今東西のエディタの基本機能だが

255 :デフォルトの名無しさん:2011/05/08(日) 19:10:52.68
パソコン買ったばかりの人でもプログラミングできる時代になったんだな

256 :デフォルトの名無しさん:2011/05/08(日) 19:12:04.04
キーボードのinsertボタン押したんじゃね? もう一回押せばモード変わると思う。

257 :デフォルトの名無しさん:2011/05/08(日) 19:16:04.97
>>256
ありがとうございます。解決しましたw

>>254, 255
あまりにも初歩的な質問をして申し訳ありませんでした。
お恥ずかしい限りですw

258 :デフォルトの名無しさん:2011/05/08(日) 19:42:44.85
いつも、asp.netに質問している者です
asp.net <------> クライアント(flash)
クライアントではsession変数の中身を見ることができるのでしょうか?

ログインしていないユーザを弾くために、session変数に値を入れたいんです
後は将来的に他のデータを入れたり etc etc

259 :デフォルトの名無しさん:2011/05/08(日) 19:52:52.63
>>257
え、釣りじゃなかったのか。道は厳しそうだががんばって

260 :デフォルトの名無しさん:2011/05/08(日) 19:59:40.85
>>258
出来ない
セッション変数つーのはあくまでサーバー側のサービスに保持されてる値
セッションにユーザー情報入れるのは常とう手段だが、認証弾くのはあくまでサーバー
「他のデータ」もWebサービスのレスポンス内に入れるべき

261 :258:2011/05/08(日) 20:04:56.19
>>260
わかりました
session変数はとても楽なので、それを使ってflashと連携できたら良かったのですが
ありがとうございました

262 :デフォルトの名無しさん:2011/05/08(日) 23:21:59.90
Form1にtextBox1を貼り付けました。

263 :デフォルトの名無しさん:2011/05/09(月) 02:45:58.51
お疲れ様

264 :デフォルトの名無しさん:2011/05/09(月) 07:00:14.06
>>262
ちょw
それやば……


265 :デフォルトの名無しさん:2011/05/09(月) 22:05:10.59
失礼します。
cucursol.positionでポインタ座標を変更したときにMousemoveイベントが発生してしまいます。
ユーザーがマウスを動かした時は発生し、カーソル座標をプログラムから変更した場合は発生しないというイベントを作るにはどのようにすればよろしいでしょうか?

266 :デフォルトの名無しさん:2011/05/09(月) 22:17:02.79
1.フラグ使う

2.プログラムから変更する直前にイベントハンドラ削除して
変更後に再設定する

3.ほかの人がもっとスマートな方法を思いつくのを待つ

のどれか。3がお勧め

267 :デフォルトの名無しさん:2011/05/09(月) 22:24:32.94
>>265-266
>>160の発想は素晴らしいと思うよw

268 :デフォルトの名無しさん:2011/05/09(月) 22:31:32.72
コードでマウスポインタの座標を弄るなどという不気味なことはしないのが正解。
真面目な話。

269 :265:2011/05/09(月) 22:46:42.50
皆さんありがとうございます。
全ての方法を試させていただきましたが厳しいかんじですね・・・
あるいは私の考え方自体間違っているのかもしれません。

作っているのはカスタムコントロールでAdobe製品のような 「コントロール上で左右にドラッグすると数値が変わる」 というものです。
MouseMove内で前回のマウス位置と比較して数値をアップダウン、その後マウスポインタの位置を戻す という動作にしているのですがこの位置を戻す動作でもMouseMoveが発生し
ポインタが荒ぶってしまいます。
何かいい方法はあるのでしょうか

270 :デフォルトの名無しさん:2011/05/09(月) 22:49:17.83
マウスポインタの位置を戻す必用がどこにあるのか意味不明だと思う。
そんなコントロールみたことない。

271 :デフォルトの名無しさん:2011/05/09(月) 22:49:49.58
ドラッグってマウスの動作を分解すると

1 左ボタン押す
2 マウス移動
3 左ボタン離す

だろ?
コードを書くイベントを間違ってると思うぞ

272 :デフォルトの名無しさん:2011/05/09(月) 22:51:11.33
>>270
やりたいことの意味はわからなくもない

作業する場所は元のところなのにジェスチャーぽい動作で
ポイントを移動したらまた戻す動作が必要だからねえ

でもMoveで処理しなくてもいいと思うけどw

273 :デフォルトの名無しさん:2011/05/09(月) 22:54:33.49
>>272
そんな有難迷惑な機能実装されたら、ユーザーはジェスチャーするごとに
マウスを持ち上げて位置を修正しなきゃならなくなる。

ちょっと考えが浅いと思うよ。

274 :デフォルトの名無しさん:2011/05/09(月) 23:00:44.15
>>273
特定のコントロール依存ぽいしいいんでないの?
システム全体でそんな挙動されると困るけどw

275 :デフォルトの名無しさん:2011/05/09(月) 23:04:55.75
>>271で解決だな

276 :デフォルトの名無しさん:2011/05/09(月) 23:08:39.61
Picasaのスクロールバーみたいにすればいいんじゃないの。
マウスポインタをいじる必要はない。

277 :265:2011/05/09(月) 23:26:22.11
皆さんありがとうございます。
確かに私自身も使いにくいと思っています。ですのでONOFFできるようにしてあります。それと勉強が目的・・・ということでお願いします。

どのイベントで、ということですがドラッグの中で一番長い動作はやはりポインタの移動ですし移動で数値が変わりますので常に移動を補足する必要がある・・・ということでMove内で処理
しております。クリック判定もMove内で行っております。

とりあえずの結論としましてはドラッグ中はマウスポインタを非表示にし、マウスが離されたときに座標を変更するということにしました。
ありがとうございました

278 :デフォルトの名無しさん:2011/05/10(火) 06:27:24.64
へ?

MouseDown → 位置判定、該当位置ならフラグ1立てる
MouseMove → フラグ1立ってるなら値変更、スライダー移動。フラグ2が立ってるなら何もしない
MoseUp → フラグ1おろす。フラグ2立てる。マウスの座標変更。フラグ2おろす。

でいけるじゃん

279 :デフォルトの名無しさん:2011/05/10(火) 09:33:46.84
フラグ2いらなくね?

280 :デフォルトの名無しさん:2011/05/10(火) 11:25:19.60
C# 3.5
で質問です。
現在DataTableに取得してきたSqlServerのデータにフィルタをかけたいと思っていますが
うまく実現できません。

Table定義
Col1 Date(SqlServerの型)
Col2 Time(0)(SqlServerの型)
Col3 String(SqlServerの型)

Col1は取得時にWHERE句で必要外のデータをはじきとばしているので必要ありませんが一応記述しています、
問題はCol2のTime(0)です。
.netではTimeSpanになると思いますが、DataTable.Select("Col2 = ???")
上記の???の部分に何を入れればよいのかが判りません。

判らないのでひとまず暗黙変換でも行けるかな?と思い
Col2='09:00:00'のようにしても
System.TimeSpan および System.String で '=' 操作を実行できません。
と怒られてしまいます。

2.0で作っている人も使う可能性があるので可能であればSelectを使用する方法と
Linqを使う方法をお教えいただければと思います。

最悪DBへ時刻毎に取得しに行けばいいのでしょうが15分ごとの1日分の問い合わせになる為、回数を減らす為に子のようにしたいと思っています。

よろしくお願いいたします。


281 :デフォルトの名無しさん:2011/05/10(火) 12:03:23.07
フィルタ式じゃTimeSpan同士の比較演算は定義されてないみたいだからほぼ無理
秒単位まで完全に一致してるかどうかならStringにCONVERTすればできないでもないけど
まあ普通にループ回してDataRowごとにチェックしていけばいいんじゃね

SELECTするときにdatetimeに変換してしまう方が楽かもしれんね

282 :デフォルトの名無しさん:2011/05/10(火) 13:10:16.00
>>281
情報ありがとうございます。
素直にDB設計を見直した方がいいかもしれませんね
ちょっとTime使うのは早かったか・・・・

ありがとうございました。

283 :デフォルトの名無しさん:2011/05/10(火) 13:30:43.37
早いという問題じゃないように思うが

284 :デフォルトの名無しさん:2011/05/10(火) 18:25:26.80
>>280-281
俺も
convert(col2,'System.String')='09:00:00'
で行けると思ったんだが、どうもうまく動かないようだ
convert後の文字列が素直に09:00:00のような形式ではないみたい
ということで
>SELECTするときにdatetimeに変換してしまう方が楽かもしれんね
この意見に賛同

ちなみに2.0でSQLServerのTime型とかサポートしてないんじゃね?

285 :デフォルトの名無しさん:2011/05/10(火) 20:54:59.55
>>277
そういうのはReactive Extensionsを使うとすっきり書けるんだけどね。

286 :デフォルトの名無しさん:2011/05/11(水) 00:56:46.00
System.Diagnostics.Process.Start()

つーのはbatファイルから実行できないの?

たとえばnotepad.bat
っていうのにnotepadとだけ書いてて、
それをダブルクリックしたらメモ張がでてくるよね

でもProcess.Start("d:\notepad.bat");
ってやっても、黒いコマンドプロンプトが一瞬出てきて、メモ張は出てこないで終わり。

直接Process.Start("notepad")ってやればいいとかじゃなく、
今はどうしても理由あってbatファイルから実行したいんだけど
普通にnotepad.batをダブルクリックしたのと同じように動作させるにはどうしたらいい?

287 :デフォルトの名無しさん:2011/05/11(水) 01:13:07.10
> Process.Start("d:\notepad.bat");
普通にこれで十分 なのでどっかでバカやってるんだろう
実は例外出てたけど握りつぶしてたとか

288 :デフォルトの名無しさん:2011/05/11(水) 01:16:08.62
Process.Start(@"d:\notepad.bat");

でいけたぞ。

289 :デフォルトの名無しさん:2011/05/11(水) 01:16:36.95
普通に動くじゃんって思ったらこういうことか?
"d:\\notepad.bat"または@"d:\notepad.bat"


>>285
Rx使いこなす初心者とかこわい

290 :デフォルトの名無しさん:2011/05/11(水) 02:14:15.35
イベントをIObservableに変換できますとか訳分かんない。こわい

291 :デフォルトの名無しさん:2011/05/11(水) 03:11:27.60
既存のクラスに機能を追加したいとき、
・継承する
・そのクラスをフィールドに持つクラスを作る
といった方法があるようだけど、下の方法は継承するのと比べてどういう利点があるの?

292 :デフォルトの名無しさん:2011/05/11(水) 03:19:37.25
>>291
コードを書くのが楽しくなる

293 :デフォルトの名無しさん:2011/05/11(水) 03:23:35.89
下はカプセル化したい時使うかな

294 :デフォルトの名無しさん:2011/05/11(水) 08:45:00.71
継承よりコンポジションを選ぶ

でググれば俺より優秀な誰かが解説してくれてると思う

295 :デフォルトの名無しさん:2011/05/11(水) 10:26:06.76
スレッドAからはEnqueueだけ、スレッドBからはDequeueだけを行うようなキューを用意する場合

(1) Queue<T>を生のまま使う
(2) Queue<T>を、操作するときにはlockするようにして使う
(3) ConcurrentQueue<T>を使う

のどれが相応しいですか?
以外と(1)でどうにかなったりしますか?

場合によるっていう場合は、「こんなケースならこれ使う」ってので結構です。

296 :デフォルトの名無しさん:2011/05/11(水) 10:28:04.16
常に3でいいだろ

297 :デフォルトの名無しさん:2011/05/11(水) 10:47:58.21
うん、3でいい。

298 :デフォルトの名無しさん:2011/05/11(水) 11:46:51.66
4.0なら3
2.0〜3.5なら2
じゃないかな?


299 :デフォルトの名無しさん:2011/05/11(水) 12:46:24.37
>>296-298
.NET 4なので最初(3)で考えていたのですが、しばらくして
「ConcurrentQueueを使うのはもしかして大袈裟なのではないか?」
という妙な感覚にとらわれ、不安になっていたところでした。
ありがとうございます。(3)で行こうと思います。

300 :デフォルトの名無しさん:2011/05/11(水) 17:51:37.56
(3)はWindows98で動かないよ

301 :デフォルトの名無しさん:2011/05/11(水) 17:56:55.95
98って何ですか?

302 :デフォルトの名無しさん:2011/05/11(水) 18:01:17.73
神OS

303 :デフォルトの名無しさん:2011/05/11(水) 19:14:24.33
>〜〜を使うのはもしかして大袈裟なのではないか?
C#とか最近の言語使ってるとよくこの心境になるよね

304 :デフォルトの名無しさん:2011/05/11(水) 19:18:12.40
C#を使うのはもしかして大袈裟なのではないか?

305 :デフォルトの名無しさん:2011/05/11(水) 19:24:07.09
しっくりこないんです

306 :デフォルトの名無しさん:2011/05/11(水) 19:25:18.54
かーもね

307 :デフォルトの名無しさん:2011/05/11(水) 19:26:23.63
ハイッ!

308 :291:2011/05/11(水) 20:22:46.55
ありがとう勉強になった

309 :デフォルトの名無しさん:2011/05/11(水) 23:21:41.81
Process で cmd を使ってあるソフトを動かしてるのですが、実行時にこのソフトが本来コマンドプロンプトに表示するメッセージが StandardOutput で受け取れないです
ちなみに、「Microsoft Windows [Version ***]」と「Copyright (c) 2009 Microsoft ***」の2行と、実行したコマンドは受け取れてます

受け取る方法は無いでしょうか?

310 :デフォルトの名無しさん:2011/05/11(水) 23:29:02.89
@IT:連載:..NETマルチスレッド・プログラミング入門
ttp://www.atmarkit.co.jp/fdotnet/mthread/index/index.html

他に、これも読んどけってのあったら教えて

311 :デフォルトの名無しさん:2011/05/11(水) 23:33:35.76
DateTime型同士の+の演算で「+」の演算はできないと
怒られてしまいました。
(マイナスならできるのに)
なにかいい手立てはありますか?

ts = DateTime.Now - ATime + BTime

312 :デフォルトの名無しさん:2011/05/11(水) 23:35:01.33
DateTime
に加算する機能なかったっけ?

313 :デフォルトの名無しさん:2011/05/11(水) 23:36:36.35
時刻+時刻は無意味
時刻+時間は時刻
で、.NETで時間を表す型といえば?

314 :デフォルトの名無しさん:2011/05/11(水) 23:37:39.72
↑キモイな

315 :デフォルトの名無しさん:2011/05/11(水) 23:41:19.12
timespanがどーたらこーたらだったような。普通に加算のあるでしょ

316 :311:2011/05/12(木) 00:08:28.45
DateTime.Addition 演算子
http://msdn.microsoft.com/ja-jp/library/system.datetime.op_addition.aspx#Y200
これかな。。。。
情報が少ない・・・。

ありがとう。ちょっと頑張ってみます。

317 :デフォルトの名無しさん:2011/05/12(木) 00:16:13.14
>>310
古い、かな。
今はTaskなど新しいものが色々入っていて、基本的には新しいのを使うべきなので。
http://msdn.microsoft.com/ja-jp/library/dd460693.aspx
http://www.albahari.com/threading/
などを見るといいのではないかな。

318 :デフォルトの名無しさん:2011/05/12(木) 00:18:15.55
手元の本によるとdatetimeにadddaysとaddhoursメソッドがあるからそれだ

319 :デフォルトの名無しさん:2011/05/12(木) 00:19:10.49
いや普通にTimeSpanを+で足せるけど

320 :デフォルトの名無しさん:2011/05/12(木) 00:33:54.84
たしかに時刻同士の足し算って答えがわからんもんな

321 :デフォルトの名無しさん:2011/05/12(木) 00:38:47.32
いい加減スレ違い

322 :デフォルトの名無しさん:2011/05/12(木) 00:39:21.87
このド低能がっ!

323 :デフォルトの名無しさん:2011/05/12(木) 00:42:02.11
俺は高脳だけどな

324 :デフォルトの名無しさん:2011/05/12(木) 00:45:03.41
じゃ俺金玉

325 :デフォルトの名無しさん:2011/05/12(木) 01:01:01.84
>>317サンクス勉強になる。しかし理解が追いつかない。
パラメータや戻り値が利用可能なデリゲートを使ったBeginInvokeなマルチスレッドと比較して
System.Threading.Tasks.Task<TResult> の型を使用して Result プロパティから値を返す方法のデメリット
ってなにかありますか?。

326 :デフォルトの名無しさん:2011/05/12(木) 02:29:23.93
foreach中に他のスレッドなどでそのコレクションを追加・削除したらどうなるのっと

327 :デフォルトの名無しさん:2011/05/12(木) 03:04:29.72
>>325
デメリットないよ。
しいて言うなら、40バイトくらいだったかな、余計にメモリ食う。

.NET 4以降は全部Task使えばいいと思う。

328 :デフォルトの名無しさん:2011/05/12(木) 03:13:11.34
>>326
InvalidOperationException

329 :デフォルトの名無しさん:2011/05/12(木) 08:05:55.83
>>326
爆発する

214 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)