ふらっと C#,C♯,C#(初心者用) Part120at TECH
ふらっと C#,C♯,C#(初心者用) Part120 - 暇つぶし2ch1:デフォルトの名無しさん
16/04/07 23:50:53.69 qhI2bqCd.net
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part119 [無断転載禁止]©2ch.net
スレリンク(tech板)
■関連スレ
C#, C♯, C#相談室 Part90 [無断転載禁止]©2ch.net
スレリンク(tech板)
■コードを貼る場合は↓を使いましょう。
URLリンク(ideone.com)
URLリンク(dotnetfiddle.net)
■情報源
URLリンク(msdn.microsoft.com)
URLリンク(referencesource.microsoft.com)

2:デフォルトの名無しさん
16/04/08 01:38:17.04 mOlgqJFI.net
>>1

3:デフォルトの名無しさん
16/04/08 06:37:09.93 HJ1k/UMj.net
おつつ

4:デフォルトの名無しさん
16/04/08 14:41:08.64 1CGIDV2R.net
乙うんたらかんたら

5:デフォルトの名無しさん
16/04/08 17:40:04.39 ZKlMt/er.net
Windowsフォームを新規に作ると最初から
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
と入ってきます。
using System;

using System.Linq;
だけにしたいのですが、どこを弄るといいですか。
VBだとプロジェクトのプロパティの参照タプの中で指定できました。

6:デフォルトの名無しさん
16/04/08 18:01:42.28 Dbjh+uI9.net
右クリックで、「不要なusingを削除」があったような。

7:デフォルトの名無しさん
16/04/08 18:26:24.26 ZKlMt/er.net
フォームを新規作成するたびに、いちいち「不要な~」をクリックしないといけないんですか?

8:デフォルトの名無しさん
16/04/08 18:57:24.06 Dqsd1B4y.net
自分好みの初期コードを項目テンプレートとして出力
デフォルトテンプレートを弄れるかどうかは知らない

9:デフォルトの名無しさん
16/04/08 19:15:16.90 k5mAqr7Y.net
フォームを新規作成した後に、いちいちそこらのusing記述するよりはマシだと思うんだが

10:前スレ966
16/04/08 20:57:12.84 O+dqsEfs.net
>>前スレ995
レス㌧です。わかりました
hddに空き容量があるかどうかって、どう判断すればいいんですか?
空き容量がクラスターサイズ未満の場合、空き容量不足と判断していいんですか?

11:デフォルトの名無しさん
16/04/08 21:32:07.36 rceSL6lb.net
不毛なことやってるね、君
「チェックして何かする」という操作は、その一連の操作がアトミックでない限り、TOCTOU問題を孕んでいる
一連の操作をアトミックにできないのならば、「失敗したら対処する」が正解

12:デフォルトの名無しさん
16/04/08 21:45:30.03 rceSL6lb.net
あ、正確性は必要ないんだったら空き容量とクラスタサイズ比べてもいいと思いますよ
そもそも正確性が必要ないなら「理由は分からんが書き込みに失敗した」例外で十分だと思いますけどね
だって空き容量だけが書き込めない理由ではないし

13:デフォルトの名無しさん
16/04/09 00:06:43.64 +uY9P9N5.net
配列の中で小分けにされた部分をLINQでひとまとめにするって出来ますか?
例えば、new [] {

14:デフォルトの名無しさん
16/04/09 00:12:43.21 +uY9P9N5.net
↑連投すみません。ダブルクォーテーション以下が消えました。
例えば、new [] {

15:デフォルトの名無しさん
16/04/09 00:13:29.70 +uY9P9N5.net
すみません。何でもないです。

16:デフォルトの名無しさん
16/04/09 00:21:33.80 IY2UdM/9.net
>>1にコード貼る際の事書いてあるから利用すべし

17:デフォルトの名無しさん
16/04/09 00:36:20.92 +uY9P9N5.net
ありがとうございます。↓の様な配列をLINQで整理したいです
URLリンク(ideone.com)

18:デフォルトの名無しさん
16/04/09 00:39:47.80 gMQW+q93.net
>>11,12
何をいいたいのか全くわかりませんが、
とりあえずクラスタサイズと空き容量を比べるのは不毛だとわかったのでやめておきます

19:デフォルトの名無しさん
16/04/09 01:14:54.06 ZG8b6ceC.net
>>17
拡張メソッド使った方が良さそうだねこれ
beginとendの間だけフローを別にするわけだし

20:デフォルトの名無しさん
16/04/09 01:18:52.50 ZG8b6ceC.net
ラムダ式の中にif文とか書いてもいいなら楽だけどそういうのは嫌なんざんしょ?

21:デフォルトの名無しさん
16/04/09 02:20:14.08 +uY9P9N5.net
よく考えてみると、わざわざLINQにする必要は無かったかもしれないです。
結果を遅延評価のIEnumerable型で返せればいいので、拡張メソッドでやってみます。
ありがとうございます。

22:デフォルトの名無しさん
16/04/09 03:49:09.65 rNffGqnS.net
>>1
ダイアログのプログラムを作っています。
メインのダイアログに、ピクチャーBOXを作って
そこに、画像を出したいです・・・
2つ目のダイアログ(モーダル?)を
出し、そこからボタンを押して
メインのダイアログに画像を表示を行っても、出ないです・・・
なぜ???

23:デフォルトの名無しさん
16/04/09 09:51:53.08 AbuIHjSU.net
>>9
using多用する人はVB行った方がいいと思う

24:デフォルトの名無しさん
16/04/09 10:03:11.06 R4MY7Gdi.net
>>22
usingとVBの関係って何?
>>5のコードでListやTask定義するにもSystemから記述するのが基本なの?

25:デフォルトの名無しさん
16/04/09 10:17:52.75 6gRo/Soy.net
多用って何個書いたら多用なんだよ
テメーもプログラマーの端くれなら閾値をはっきり定義しろ
できねえだろ
主観で喋るな

26:デフォルトの名無しさん
16/04/09 11:08:55.29 AbuIHjSU.net
少なくともデフォより増やすのは愚

27:デフォルトの名無しさん
16/04/09 11:18:07.13 R4MY7Gdi.net
只の自分ルールかよ・・・
相手して損したわ

28:デフォルトの名無しさん
16/04/09 11:33:39.18 wC7h6zHD.net
面白そうな人来た

29:デフォルトの名無しさん
16/04/09 11:34:55.96 mjwXlN36.net
機能毎にクラスにしてファイルを分ければ結果としてusingの数は減るって主張なら分からんでもないけど、
先にusing数の上限を決めるとか本末転倒もいいとこ。大体、usingが増えると何が悪いって言うんだ。
言語仕様もC#6.0でusing staticが追加されるような方向なのに。

30:デフォルトの名無しさん
16/04/09 11:59:24.66 +GTdNWiW.net
>>26
ID:AbuIHjSU
バカ発見

31:デフォルトの名無しさん
16/04/09 12:25:29.83 AbuIHjSU.net
using 東京都千代田区;
using 大阪府中央区;
using 兵庫県神戸市;
void XXX() {
 元町 m;
 一番町 i;
 ・
 ・
}
可読性最悪と思わないか? 

32:デフォルトの名無しさん
16/04/09 13:00:31.96 VR6ZQ3df.net
>>31
何が言いたいのかわからいけど、
元町がどのクラスにもあって判別つかないなら
そもそも省略できないから、可読性云々にはならない
特定のクラスにしか無いなら、~一番町と毎回書かれるより、一番町の方が自分は可読性が良いと感じる

33:デフォルトの名無しさん
16/04/09 13:05:21.40 nRuHPtMR.net
using 宇宙;

34:デフォルトの名無しさん
16/04/09 13:25:34.39 mjwXlN36.net
>>31
名前空間的な設計がひどいw
というか、それらを同じレベルで扱う理由が分からん。
それは置いといて、
紛らわしい場合はエイリアス使うか、そこだけ名前空間名付きで使うだろ。
全体を縛る理由にはならん。

35:デフォルトの名無しさん
16/04/09 14:55:43.84 tsk5klzv.net
単独の名前だけではどこに属するか分かりづらいこともあるという説明だろうに、
名前が一意でなければコンパイルエラーになるだろうとか
アホの極み

36:デフォルトの名無しさん
16/04/09 17:05:27.54 DA1syyI4.net
増やすなとか言う人は、なんでいっそusing禁止にしないのかね
using禁止してもすべてフルパスで書けば良いだけだから
少ないほど良いなら禁止にすれば良いのに

37:デフォルトの名無しさん
16/04/09 17:08:18.33 tdJ21AF+.net
初心者だからわかんないんだけど、FormsとWPFとか一部の話を除いてどこの名前空間に属するか気にすることあるの?
どこのクラスかよりどんな機能かの方が大事じゃない?
それにどこに属してるかなんてマウス当てれば見れるし

38:デフォルトの名無しさん
16/04/09 17:25:06.02 2XO/HUgQ.net
>>37
NUnit使った時に、.NETデフォルトの名前空間と被ったことあったな

39:デフォルトの名無しさん
16/04/09 17:43:14.71 wC7h6zHD.net
>>31
賛同を得られないようです。
そうなったらなったでエイリアスかフルパス指定して下さい。

40:デフォルトの名無しさん
16/04/09 20:38:53.28 nX2uL7WF.net
>>37
重要だよ
名前空間はコンテキストを表からね
自分が扱っているコンテキストを知らずにコードなんて書けない

41:デフォルトの名無しさん
16/04/09 21:13:08.18 oSYK5b7M.net
>>31
それは所有関係で表せよw
class 地球{
日本 日本;
アメリカ アメリカ;
}

42:22
16/04/09 21:17:45.14 L1kfgsDf.net
ごめんなさいね・・・
プログラム作らなければならないので・・・
>2つ目のダイアログ(モーダル?)を
出し、そこからボタンを押して
メインのダイアログに画像を表示を行っても、出ないです・・・
ひっそりと、教えてくれれば、有りがたいです

43:デフォルトの名無しさん
16/04/09 21:59:13.95 8IlPZvxc.net
エスパーは得意の方だが、さすがにそれだけでは解らん。

44:デフォルトの名無しさん
16/04/09 22:02:20.33 y1M33vAR.net
まあnew Form1().PictureBox1.Image = xxx;とかやってるんだろ

45:デフォルトの名無しさん
16/04/09 22:27:50.77 LuIwrhYb.net
今リファクタリング的なことをやっています
3つクラス(Form1クラス、Aクラス、Bクラス)があるんですが
今はForm1クラスはAクラスのインスタンスを持っていて、AクラスでBクラスのインスタンスを作成しているんですが
Form1クラスからBクラスの値を参照したくなった場合、どう実装したほうがいいんでしょうか?

46:デフォルトの名無しさん
16/04/09 22:34:31.00 oSYK5b7M.net
usingで思い出した
初言語javaなんだけど、俺がjava始めたばっかりの頃importが面倒で、
import java.*;
import javax.*;
だけ書いたけど、エラー出たから何故動かないんだよって思ってた

47:デフォルトの名無しさん
16/04/09 23:20:28.04 Xp7ojQRi.net
>>45
その1
AクラスにBクラスの必要なメソッド等の委譲コードを書く
その2
AクラスにBインスタンスのプロパティを作る

48:デフォルトの名無しさん
16/04/10 00:28:58.42 Ahv7tyaq.net
>>47
Bクラスを静的なクラスにするのはやめたほうがいいんですか?

49:デフォルトの名無しさん
16/04/10 08:27:51.35 +2PVv+oX.net
>>43
後ほど
何か?説明出来るもの作成します・・
>>44
その通りです。
メインダイアログのForm1にPictureBox1
が、有って
2つ目のダイアログを出して、そこからForm1のPictureBox1
を表示をさせているのだけど、表示されない・・・
簡単なものが出来ない・・・Orz

50:デフォルトの名無しさん
16/04/10 09:14:16.51 7j13M86f.net
>>48
Bクラスの用途次第。
つうか、BクラスがstaticならAクラスを経由する意味なくね?

51:デフォルトの名無しさん
16/04/10 10:28:18.72 1Wh4RO0J.net
koukaボタンの操作音を鳴らしたいと思ってます
あまり違いが無いのかもしれませんが、
リソースに音声ファイルを置いてProperties.Resourcesから引っ張ってくるのと
たとえばアプリケーション配下に用意したフォルダに置いておいてパスを指定するのと
どっちがよいものでしょう

52:デフォルトの名無しさん
16/04/10 10:34:21.45 1I5jwrs3.net
正規表現に関する質問です。
■概要
「そうですねabcの次はdefですね笑」
上記文章のdefにマッチさせる正規表現文字列をご教授下さい。
■ロジック
「***笑」の「***」の中に存在する「最後の」半角英数文字を取り出したい。
■現在の正規表現文字列
"([0-9a-zA-Z!-~]+)(.*)(笑)"
■現在の正規表現文字列に対するマッチ結果
マッチ文字列 : abcの次はdefですね笑
マッチ文字列グループ1 : abc
マッチ文字列グループ2 : の次はdefですね
マッチ文字列グループ3 : 笑
■質問内容
上記グループのいずれかにdefが該当するような
正規表現文字列を教えて下さい。
ポイントは「最後の」です。

53:デフォルトの名無しさん
16/04/10 10:42:56.62 eLrPtu2a.net
^そうですね([0-9a-zA-Z!-~]+)の次は([0-9a-zA-Z!-~]+)ですね笑$

54:デフォルトの名無しさん
16/04/10 10:47:00.73 1I5jwrs3.net
>>53
ご回答ありがとうございます。
伝え方がまずかったですが、
ロジックは、
「***笑」の「***」の中に存在する「最後の」半角英数文字を取り出したい、
です。
半角英数文字が2個あるとは限らない(1個かもしれないし100個かもしれない)
かつ、
そうですね、の次は、ですねは不要です。

55:デフォルトの名無しさん
16/04/10 10:52:08.91 /P6H1bvW.net
>>52
この場合はfが欲しいものかな?

56:デフォルトの名無しさん
16/04/10 10:52:08.96 eLrPtu2a.net
([^0-9a-zA-Z!-~]+)([0-9a-zA-Z!-~]+)ですね笑$

57:デフォルトの名無しさん
16/04/10 11:09:44.11 1I5jwrs3.net
>>55
ご回答ありがとうございます。
欲しいものは def です。
「***笑」の「***」の中に存在する「最後の」半角「連続」英数文字を取り出したい、
のです。
>>56
ご回答ありがとうございます。
半角「連続」英数文字が2つとは限りませんので。。
1個かもしれないし100個かもしれないです。

58:デフォルトの名無しさん
16/04/10 11:23:25.02 1I5jwrs3.net
>>52
以下で解決しました。ご回答ありがとうございます。
"([0-9a-zA-Z!-~]+)([^0-9a-zA-Z!-~]*)(笑)"

59:デフォルトの名無しさん
16/04/10 15:13:22.39 uwr9rV8d.net
C#のジェネリック型はdynamic型の変数に結果を代入したり演算するしかないな
C++と決定的に違うところ
利点でもあり欠点でもある

60:デフォルトの名無しさん
16/04/10 17:20:39.84 RwAe3a6t.net
何言いたいのかわからんけど、ジェネリック型受けるメソッド作れば?

61:デフォルトの名無しさん
16/04/10 17:45:17.43 2nCcxZVq.net
ジェネリックではなく匿名型の事を言いたいのでは?

62:デフォルトの名無しさん
16/04/10 18:02:48.76 +n+Dd3ZV.net
演算したいならdobuleで統一すれば?

63:デフォルトの名無しさん
16/04/10 20:02:19.00 ClY0znlz.net
varで受ければいいだろ(鼻ホジー)

64:デフォルトの名無しさん
16/04/10 21:07:55.33 Ahv7tyaq.net
>>50
Aクラスを経由する必要はないです
結局Formクラスでインスタンスを作成し、そのインスタンスをAクラスにも渡すようにしました

65:デフォルトの名無しさん
16/04/10 21:11:39.48 7j13M86f.net
>>64
意味解らん。
staticなクラスのインスタンスを作る?

66:デフォルトの名無しさん
16/04/10 21:17:09.60 7j13M86f.net
>>59
エスパーしてみる。
T Foo<T>(T a, T b) => (dynamic)a + (dynamic)b;
例えば、こんな意味かな?

67:デフォルトの名無しさん
16/04/11 04:02:12.79 +pegrb/D.net
>>65
もともと
>AクラスでBクラスのインスタンスを作成している
って書いてあった
>Bクラスを静的なクラスにするのはやめたほうがいいんですか?
って話があっただけで、今Staticだとは言ってないような
>>64
クラスの値ってのが何かいまいちはっきりしない
Staticでいいならそれでもいいけど
Aクラスで、生成したBクラスのインスタンス返すようにして、フォームでそれ受け取る方がよいんじゃね

68:デフォルトの名無しさん
16/04/11 04:12:47.88 PV6heo6W.net
>>66
多分それだろう
ジェネリクスで受けた引数に例えば+=などの演算子を適用するにはdynamicが必要だから

69:デフォルトの名無しさん
16/04/11 08:31:59.54 PPmBx3Gy.net
何を言っているんだこのばかは
>>68にジェネリクスは少し早すぎたようだな

70:デフォルトの名無しさん
16/04/11 08:35:31.15 aH1XfOsQ.net
>>69
ジェネリック医薬品と間違えちゃったんでしょうえ

71:デフォルトの名無しさん
16/04/11 09:32:02.93 0g0FwiI9.net
医薬品は必要ではないかね?
頭のお薬ね

72:64
16/04/11 23:13:52.75 OVeoS2bR.net
>>65
staticにはしてないです
>>67
staticにするとそれはそれで結構な量を修正しないといけないので
結局インスタンスクラスのままにしてFormクラスで持つようにしました
もう一つ疑問が出てきたので回答お願いします
FormClosedイベントで設定された値をBクラスのインスタンスに格納してXmlシリアライズ化で保存しようとしているんですが
Formが閉じられなくなります
BクラスのデストラクタXmlシリアライズさせているのですが
FormClosingイベントで値の保存をするべきなのでしょうか?

73:デフォルトの名無しさん
16/04/11 23:19:38.51 4CkanXgX.net
それだけならFormが閉じられなくなる理由はない
隠し事はお前のためにならないぞ

74:デフォルトの名無しさん
16/04/11 23:45:26.74 qF5EN52b.net
実は、便秘でした。

75:デフォルトの名無しさん
16/04/12 03:11:25.21 k6A/HJ44.net
値が保存されていない、じゃなくて、フォームが閉じられない?
FormClosedはフォームが閉じられた後に発生するイベントだぞ
ちなみにフォームの開く/閉じると、インスタンスの寿命は一致してないし
そもそも.NETではデストラクタが実行されるタイミングは不定だぞ
デストラクタで保存しようとしたら、GC走るまで保存されない

76:デフォルトの名無しさん
16/04/12 10:29:02.98 t1SANezo.net
このページ URLリンク(old.k-db.com) をHttpClientで読み込んだら文字化けします
文字化けしないようにするにはどうすればいいですか?

77:デフォルトの名無しさん
16/04/12 11:07:05.44 4pSn+gwf.net
化けなかったぞ
ヘッダにもContent-Type正しく書いてるしUTF-8だしで化ける要素なさそうだけど
ideoneとかでその化けるってコード書いたら

78:デフォルトの名無しさん
16/04/12 13:42:28.56 DFx5CsWv.net
別な理由で読めてませんでした、ごめんなさい

79:デフォルトの名無しさん
16/04/12 16:26:23.95 nUKDNopl.net
理由を書くまで許しません

80:デフォルトの名無しさん
16/04/12 21:33:08.43 OgC2WVdI.net
>>73
FormClosedイベント中はまだFormの変数とかは破棄されてないんですよね?
調べているとApplication.Exitが発行されてから発生すると書かれているんで
もしかしてFormClosed中はインスタンス変数とか触っちゃダメですか?

81:デフォルトの名無しさん
16/04/12 21:36:54.69 u71GHm0/.net
もうコード晒せよ
埒があかねえ
それが嫌なら質問かプログラミングのいずれかを辞めろ
向いてないお前

82:デフォルトの名無しさん
16/04/13 00:36:45.26 7/Vts1VO.net
非同期で定期的に処理回したいのですがtimerじゃだめですか?

83:デフォルトの名無しさん
16/04/13 00:54:41.60 PNhaRHoO.net
いいですよ

84:デフォルトの名無しさん
16/04/13 18:28:48.21 bkBwVfdD.net
>>81
すいません解決しました

85:デフォルトの名無しさん
16/04/13 19:07:31.62 Q89XOWSP.net
スレッドの質問です
UIスレッド以外からフォームを触るときInvokeメソッドを使いなさいと教わったんですが
こういう書き方しかできないのでしょうか?
デリゲートやイベント等でもっとスマートにかけないんですか?
URLリンク(ideone.com)

86:デフォルトの名無しさん
16/04/13 19:24:19.69 ihuFOFJr.net
既にデリゲートは使ってるみたいだけど…

87:デフォルトの名無しさん
16/04/13 19:27:52.57 ihuFOFJr.net
あなたの抱えている問題をasync/awaitが使える形に変形できるなら
劇的に楽になると思います
あなたの抱えている問題を知らないので私はなんとも言えませんが
別スレッドからFormを触れたいってのは
手段であって目的ではないですよね
目的を書いた方がいいですよ

88:デフォルトの名無しさん
16/04/13 20:50:54.83 Q89XOWSP.net
失礼しました
formのtextboxにAsyncMethodクラスのログ(状態)を表示したいんです
たとえば「今~を処理中です」のメッセージや、進行状況等です

89:デフォルトの名無しさん
16/04/13 20:56:47.92 VkP3x0ag.net
プログラム終了時にTaskを強制的に終了させるにはどうすればいいですか?

90:デフォルトの名無しさん
16/04/13 21:01:25.43 qcaBioTQ.net
>>89
CancellationTokenSourceを使う
How to: Cancel a Task and Its Children
URLリンク(msdn.microsoft.com)

91:デフォルトの名無しさん
16/04/13 21:25:58.88 SAr8RNES.net
>>88
処理は細切れにできんの?
まあ途中経過伝えるくらいだからできるんだろうけど
await Taskである程度処理
状態通知
await Taskである程度処理
状態通知
以降繰り返し
と書けるならスレッドを意識して使う必要はない

92:デフォルトの名無しさん
16/04/13 21:27:33.66 VkP3x0ag.net
>>90
ありがとうございます
できたっぽいです
やっぱりこれしかないんですかね
ググってもみつからない

93:デフォルトの名無しさん
16/04/13 21:28:05.59 MNjDWxQi.net
>>88
とりあえずいくらマネージドとはいえThreadはもう直接使用しません
現在の非同期処理はTaskをベースとしたTAPパターンを使います
基本的にはUIハンドラでawait Taskしてメソッドを非同期にしますが、(Taskを別に待機した後UIに戻る)
起点に依ってはUIスレッドでProgress<T>を作り、IProgress<T>として渡しReport(T)させます
new Progress<string>(textBox1.AppendText)とか、これはSynchronizationContext.Post()のラッパーです
その他、UIスレッドで取得したTaskScheduler.FromCurrentSynchronizationContext()を
Task.ContinueWith()に渡して継続タスクのスケジューラをUIスレッドに指定したりもします
書き方としてはawaitがスマートですが実装的にはyieldのような糖衣構文なので内部は複雑です

94:デフォルトの名無しさん
16/04/13 21:34:41.71 ou7cKYoK.net
>>85
ほい。URLリンク(ideone.com)
TaskScheduler.FromCurrentSynchronizationContext()とか使ったやつ

95:デフォルトの名無しさん
16/04/13 21:45:47.24 ou7cKYoK.net
>>94
task = Task.Delay( 10000 ).ContinueWith( ( task ) => f1.textBox1_AppendText("10秒たちました"), uiContext );
って書いた方が少しスマートか。

96:デフォルトの名無しさん
16/04/14 00:05:48.84 fAR3CNDj.net
>>88
そういう用途のためにIProgress<T>ってものが存在しますのでググってみると良いと思いますよ

97:デフォルトの名無しさん
16/04/14 00:52:22.66 xmEGevwc.net
FormClosingイベントってFormクローズ前に呼ばれてるの?クローズ後?

98:デフォルトの名無しさん
16/04/14 01:25:44.82 V0fKG/mP.net
そういう時はReferenceSourceを読むのです

99:デフォルトの名無しさん
16/04/14 01:41:45.78 ODCDQP4x.net
それ以前に
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
>Occurs before the form is closed.
って一番上に書いてあるやんけ!!

100:デフォルトの名無しさん
16/04/14 10:24:49.60 FMI1MKs2.net
ChartControlでミスって赤いバツが出た後、簡単に復旧する方法ってありますか?
今のところ出た時はソフトを再起動させてますので・・・
URLリンク(oliversturm.com)

101:デフォルトの名無しさん
16/04/14 11:09:44.69 I/JV89BY.net
>>99
読めねえ!!!!

102:デフォルトの名無しさん
16/04/14 12:08:54.84 zHhupJkO.net
asp.netで自宅webサーバーを建てたのですがセキュリティのテストはどのように行うのですか?
私はハッキングテクニックを知らないのでテスト方法が思いつきません

103:デフォルトの名無しさん
16/04/14 12:20:33.31 u7bXxnSk.net
redditにcrack meってスレ立てとけば暇人がテストしてくれるのではないか
もちろんデータは無害なものを入れてネットワークは母艦と隔離して

104:デフォルトの名無しさん
16/04/14 12:25:47.70 ppudnQqL.net
>>97
イベント全般で
ing は前
ed は後

105:デフォルトの名無しさん
16/04/14 12:40:01.69 rnbZR8VO.net
>>100
そもそも例外を漏らすのが間違い
ちゃんと明示的にキャッチして処理しろよ

106:デフォルトの名無しさん
16/04/14 15:05:30.47 bYBpsyWJ.net
>>96
.net4(VC#2010)なので使えませんでした・・・

107:デフォルトの名無しさん
16/04/14 16:09:13.17 BY7gxQ6D.net
>>106
それならasyncも(無理しないと)使えないんだから、BackgroundWorker使っちまったほうが良いんじゃないのかな
これならプログレスバーの更新も問題ない

108:デフォルトの名無しさん
16/04/14 16:52:50.26 FTQTetBC.net
refやoutでインデクサーを渡せないというのは困るなあ
まあインデクサーの仕組みを考えると当たり前なんだけどCの感覚でやるとはまる

109:デフォルトの名無しさん
16/04/14 18:17:05.53 vqRHqcPK.net
コンパイラで弾いてくれるのと
勝手にgetter/setter呼び出すの(VB)
どっちがお好み?

110:デフォルトの名無しさん
16/04/15 10:31:19.24 OljrwCpk.net
フォーム(コンテナ)にある、特定のコントロールだけを収集する関数を型変数を使って作ろうとしてます。
public static T[] GetControls<T>(this System.Windows.Forms.ContainerControl parent)
{
 System.Collections.ObjectModel.Collection<T> result=new System.Collections.ObjectModel.Collection<T>();
 foreach(System.Windows.Forms.Control c in parent.Controls)
 {
  T tryc = c as T;
  if(c != null) result.Add(c);
 }
 return result.ToArray();
}
しかし、「T c = ctr as T;」のところがコンパイルエラーになってしまいます。
「型パラメータは as演算子で使えません」とかで
やりたいことは、キャストを試みて成功したら云々という風にしたいのですが・・・
try catch するしかないですか?

111:デフォルトの名無しさん
16/04/15 10:32:30.37 OljrwCpk.net
失礼しました

 if(c != null) result.Add(c);

 if(tryc != null) result.Add(tryc);

112:デフォルトの名無しさん
16/04/15 10:44:38.51 OljrwCpk.net
as じゃなくて
if (typeof(T) == c.GetType())
{
 result.Add(c);
}
を試みたら、Add のところで T に型変換できない、と叱られてしまいました

113:デフォルトの名無しさん
16/04/15 10:56:45.41 OljrwCpk.net
大変失礼しました。
OfType という標準機能があることを発見しまして、それにて解決しました。

114:デフォルトの名無しさん
16/04/15 10:57:55.45 +kCFise6.net
Tが構造体だったらasできないから
GetControls<T>(略) where T : Control
としてTがControl派生であることを宣言すればasもできるよ
というか子孫コントロールの取得がいらないならEnumerable.OfType<T>拡張メソッドで良いよ

115:デフォルトの名無しさん
16/04/16 03:07:58.80 0DmmjM4Q.net
LINQ使ってみたいけど使える用途がない・・・

116:デフォルトの名無しさん
16/04/16 05:55:15.06 OXHmvla7.net
どんなプログラム書いてるの

117:デフォルトの名無しさん
16/04/16 09:49:29.74 2kk4Bn2l.net
頑なにforeach使わずにfor使っているとかかね

118:デフォルトの名無しさん
16/04/16 10:34:20.51 JMwUZ1zl.net
while/doを使ってるとか

119:デフォルトの名無しさん
16/04/16 11:18:13.59 47uue4xh.net
チャックノリスは無限ループを展開することができる

120:デフォルトの名無しさん
16/04/16 18:39:07.41 STyyGeuU.net
foreachとforを組み合わせてやれることもあるけど

121:デフォルトの名無しさん
16/04/16 19:27:33.53 5kYdcFdh.net
画面解像度ではまってます
業務用アプリで大方動いているのですが、使用PCの解像度が1920×1080から
最初の想定より1344×840やらなんやらいろいろ増えてしまって・・・
開発環境は仮想でやってるのでいかようにもできるのですが、
一番メインのPCで一番メインの作業が1920×1080のフルサイズでやりたくて
フォームサイズもめいっぱいで作ったんですが、そうなると小さい解像度のPCでは
必要なボタンが画面から外れてしまい・・・
PlusPakも使える環境なんですが、Anchorとの兼ね合いでわけわからんようになりました
きっと基本的な考えが抜けてるんだろうとは思うのですが、解像度の設定の定石みたいのがあったら
教えて下さいませ

122:デフォルトの名無しさん
16/04/16 21:20:13.91 Jk1DzNfT.net
フォームサイズは最小限のサイズで作ってそこから拡大した時の位置を調整するのが普通じゃないかな

123:デフォルトの名無しさん
16/04/16 22:39:41.38 jcDEh7yB.net
基本は画面に表示するボタンをできるだけ減らすことだね
機能を分けたりTab使ったり色々やれることはあります

124:デフォルトの名無しさん
16/04/17 02:51:19.63 gGv05Z84.net
>>116
一番大きいので連番の画像をDLするソフトくらいしか作ったことない
コードの行数は全クラス合せて2000行くらい
とにかく使う頭がないんだと思う。もっと他人のコードに触れるべきなんだろうけど・・・

125:デフォルトの名無しさん
16/04/17 04:28:00.10 XdU64YjK.net
俺もLINQは使ってないな。
何も困ってないし、問題ないと思うよ。

126:デフォルトの名無しさん
16/04/17 08:08:24.78 KUJBjwPV.net
そりゃLINQ使わないと書けないプログラムなんか無いからな
単に効率が上がるというだけ
ただ、プログラムで頻繁に使われるロジックを一般化したようなもんだから、用途がないってのはちょっとあり得んかなとは思う

127:デフォルトの名無しさん
16/04/17 10:06:01.60 nI0SpfGG.net
インテリセンスに拡張メソッド出てくるのうざいから使わない。
コレクションめっちゃ使うとこ限定してる

128:デフォルトの名無しさん
16/04/17 10:20:25.04 Uucl3Aam.net
LINQって、ToArray() とか?
あれはよく使ってる
SQL文ぽい記述が出来るというやつは全く使ってない

129:デフォルトの名無しさん
16/04/17 10:21:07.15 Uucl3Aam.net
ちなみに独自の拡張メソッドは、かなり量産してる

130:デフォルトの名無しさん
16/04/17 11:15:43.05 p60JV/JL.net
ユーザーが入力した
("titie:aiueo" or "title:sage") and "size:100GB"
のような文字列からデータの絞込を行うにはどうしたらよいでしょうか
or や and の予約語は特になんでもいいです。
検索で絞込されるデータはclass Data{ String title;long size;} のようなクラスのオブジェクトで
"title:aiueo" だとtitleプロパティから部分一致
"size:100GB" だと、100GBの値を100*1024*1024*1024でbyteにしてsizeプロパティと比較
のようにキーワードごとに独自の処理をしたいです。titleも完全一致とか部分一致とか
色々検索しているのですが、「c# or and 検索 絞込」で検索してもいい結果が見つかりませんでした

131:デフォルトの名無しさん
16/04/17 11:32:56.84 0eC2/V+0.net
>>130
逆ポーランド

132:デフォルトの名無しさん
16/04/17 12:01:29.94 JjiAKXsf.net
パースして
式木を組み立てて
コンパイルして
述語型に変換して
Selectするだけ
簡単でしょ

133:デフォルトの名無しさん
16/04/17 13:28:02.05 vB/UVa4U.net
俺だったら自分で実装するような愚かな行動は止めてElasticsearchとか使う

134:デフォルトの名無しさん
16/04/17 14:44:48.65 fOrpnRrn.net
おれだったら文字列なんかで入力させない

135:デフォルトの名無しさん
16/04/17 14:56:57.70 908wDZaf.net
>>130
>>132の機能を生成するパーサジェネレータてのがある

136:デフォルトの名無しさん
16/04/17 17:12:29.64 pNxxVrcA.net
テキストボックスに書き込まれた文字列の中に,
UCS-2の範囲内に無い文字がある場合に
エラーメッセージを出したいのですが,
どう文字を判定すればよろしいでしょうか

137:デフォルトの名無しさん
16/04/17 19:13:46.95 0eC2/V+0.net
>>136
UCS"の範囲の定義は?
サロゲート部分除外したいだけならその領域使ってるかチェックする
指定したフォントにグリフがあるかないかならGetGlyph通るかチェックする

138:デフォルトの名無しさん
16/04/17 21:09:13.99 p60JV/JL.net
URLリンク(qiita.com)
URLリンク(qiita.com)
このあたりを参考にMSTestのプロジェクトを既存のソリューションに追加したのですが、
(テストしたい既存のcliアプリのプロジェクトをA、今追加したMSTestのプロジェクトをBとします)
まずBの参照にAを追加するのは解ったのですが、Aのprogramクラスはアクセス修飾子が無かったり、programクラスの中にはprivateクラスがいくつかあります。
この状態だとBからアクセス出来ないと思うのですが、どうすればよいでしょうか。
テストのために、テスト対象のクラスAを全部publicなり、広いアクセス修飾子にする必要があるのでしょうか
環境はvisual studio2015のCommunityエディションです

139:デフォルトの名無しさん
16/04/17 21:10:29.70 p60JV/JL.net
>>131-135
ありがとうございます、パーサジェネレータならなんとか使えそうかなと思いましたが
CSharpScriptで手抜きしました・・・

140:デフォルトの名無しさん
16/04/17 22:12:13.19 9Xi8HI5h.net
>>138
PrivateObject

141:デフォルトの名無しさん
16/04/18 01:38:26.53 sLfK0f0v.net
構造体のメソッドで内部状態を変更しないことを明確にするために
拡張メソッドを積極的に使うのはあり?
例えばベクトルを作るとしてVectorとVectorMathの組み合わせで作って変だと思う?

142:デフォルトの名無しさん
16/04/18 01:41:08.51 +GTfw1f8.net
string[] メンバ = {"メンバーA","メンバーB","メンバーC"}
double[] ポイント = {5,3,8}
このような状態でメンバとポイントの添え字はリンクさせたまま
ポイントの中身によって大きい順にソートさせるにはどのようにすれば良いのでしょうか

143:デフォルトの名無しさん
16/04/18 02:40:34.32 F3CARxII.net
SortedDictionary<double,string>

144:デフォルトの名無しさん
16/04/18 04:10:17.26 hKs91YAg.net
Array.Sort(ポイント, メンバ);
Array.Reverse(ポイント);
Array.Reverse(メンバ);

145:デフォルトの名無しさん
16/04/18 06:41:50.13 f0IQ1wqI.net
>>141
なし
拡張メソッドかどうかコードの字面からは読み取れないんだから意味がない
無駄なコピーが発生して遅くなるだけ

146:デフォルトの名無しさん
16/04/18 08:08:17.92 IYDXP0mw.net
>>141
状態を変える関数はインスタンスメソッドに
状態を変えない関数は拡張メソッドに
分けるのは有かもしれんね。

147:デフォルトの名無しさん
16/04/18 12:10:18.91 Vq/5RQ4u.net
拡張メソッドは積極的に使ったほうがいいよ
短くて意味が明確で無駄な状態の少ないエレガントなコードになる

148:デフォルトの名無しさん
16/04/18 12:22:10.08 f0IQ1wqI.net
でも拡張メソッドにしたところで何も明確にならないよね
どうしてもインスタンスの内容を変更しない操作であることを明示したいんなら
拡張メソッドではない普通のstaticメソッドにするべきじゃない?

149:デフォルトの名無しさん
16/04/18 12:29:29.65 f0IQ1wqI.net
あとプロパティとの一貫性の問題もあるよね
読み取り専用プロパティをメソッドにしてしまうと、副作用のある操作なのかどうかかえって区別がつかなくなる
プロパティは特別扱いするとして、その基準はどうするの?

150:デフォルトの名無しさん
16/04/18 12:43:45.14 EIGJjtgg.net
メソッドをクラス内でなく、
拡張メソッドに全部抜き出すのもありだと思うけど。
継承のオーバライドによって見通しが悪くなる場合、拡張メソッドでのオーバーロードにしておくと見通しがよくなる場合がある。
場合によりけり。

151:デフォルトの名無しさん
16/04/18 13:02:01.83 IYDXP0mw.net
まあ、拡張メソッドが嫌いならpartial classで分ける手もある。

152:デフォルトの名無しさん
16/04/18 16:58:17.45 uP2QUaPy.net
既存のexeをサービス登録したいのだけど
新規に「windowsサービス」追加して
serviceinsralletのプロパティ変更するだけでいいのでしょうか?

153:デフォルトの名無しさん
16/04/18 21:19:11.40 jZBdSOf9.net
初期表示の行を5とか10に指定したいのですがどうしたらよいのでしょうか?
ちなみにユーザーが入力したら行が増える動作はデフォのままでお願いします

154:デフォルトの名無しさん
16/04/18 21:20:28.01 jZBdSOf9.net
すみません。DateGridViewでの話です。

155:デフォルトの名無しさん
16/04/18 22:10:24.06 XvUiGo1W.net
>>141
メソッドの説明に書いておけば良いと思うけど。
フォーマットに則って書けばIDE上で説明文がポップアップするし。

156:デフォルトの名無しさん
16/04/18 22:10:24.45 9hrBV0Ec.net
WriteByte等を使ってHDDが一杯で書き込めない場合を知りたいんですが
IOExceptionのMessageオプションを見る以外に何か方法ってありますか?

157:デフォルトの名無しさん
16/04/18 23:00:02.71 sLfK0f0v.net
>>141に対する意見とても参考になったわ
もしライブラリを公開すなら、C#の値型の扱いや拡張メソッドについて丁寧な説明がいりそうね
面倒くせー!

158:デフォルトの名無しさん
16/04/19 04:01:51.80 gWOhS/GA.net
他人のライブラリを拡張するならともかく
自作のライブラリでわざわざ拡張メソッドで実装する理由がわからん

159:デフォルトの名無しさん
16/04/19 09:16:10.93 3GiFGQP4.net
言葉の使い方で質問です
サイトの解説などをみてていまいちよくわからんのですが、
データベースとかいろいろ広範囲に使われてるアタッチですが、
EventHandlerにアタッチする
とはどういうことなんでしょう

160:デフォルトの名無しさん
16/04/19 09:50:22.08 vZEuQPxP.net
接続だけど
イベントハンドラの場合は追加or登録or購読と訳す方が一般的か?

161:デフォルトの名無しさん
16/04/19 12:23:07.57 MjZ/o2WC.net
購読?

162:デフォルトの名無しさん
16/04/19 12:49:54.41 59XXYy6/.net
>>161
MSDNでの購読例
URLリンク(msdn.microsoft.com)

163:デフォルトの名無しさん
16/04/19 13:15:12.31 3gmE0sDU.net
>>158
自作のライブラリでもインターフェースに拡張メソッド実装することとかはありそうだけどね

164:デフォルトの名無しさん
16/04/19 19:58:50.91 gRgyiYwE.net
拡張メソッドってぬるぽチェックが面倒だよな
これだけはnon-nullがある言語がうらやましい

165:デフォルトの名無しさん
16/04/19 21:14:29.27 iptYg0Ry.net
>>141
今更だけど、ベクトルだったら状態は変更できないようにするのがいいと思う
今はgetだけのプロパティ作れるようになって簡単に作れるし

166:デフォルトの名無しさん
16/04/19 21:21:13.50 560ecuyq.net
>>160
複数のハンドラーが設定できるなら追加でもいいかと
一般的には登録でいいと思う
購読は Subscribe の和訳なんだろうけど予約購読のことで申し込んでおくとイベントが配信されるイメージなのかなぁ
日本語としてはあまり使わないと思う

167:デフォルトの名無しさん
16/04/19 21:36:09.12 ofgJD1Ns.net
独習c#買おうか迷ってますが
発売から結構経ってて第4版が出そうで
なかなか手が出せない

168:デフォルトの名無しさん
16/04/19 21:37:17.69 18lMfaYE.net
でも俺らって他人のクラスでメソッドチェインしたいときに誘惑にまけて拡張メソッド使っちゃうよね

169:tasukete
16/04/19 21:54:12.30 spYNmTFF.net
DataSet/DataAdapterの仕様についてご教授下さい。

■DataSet/DataAdapterの仕様
DataAdapter には、SELECT、UPDATE、INSERT、DELETEのSQL文が設定できます。
Fillメソッドを実行するとSELECTのSQL文の基づいてDataSetにデータを読み込みます。このときDataSetの各行には「編集なし」のマークがついています。
値を更新するとそのマークが「更新済」、削除すると「削除済」、データを追加すると「追加済」のマークに変わります。
Updateメソッドを実行すると、DataSetの各行のマークに応じて、設定してあるUPDATE、INSERT、DELETEのSQL文を実行します。

170:tasukete
16/04/19 21:54:51.77 spYNmTFF.net
■実施したい事【概要】
DataAdapterのFillメソッドで取得したDataSet内のDataTableに対して、
挿入/更新操作をかけていき、全ての処理が終わったら、UPDATEを行う。
その際、DataTableに挿入した順番でDBへの挿入SQLが流れてほしい。

171:デフォルトの名無しさん
16/04/19 21:55:28.70 spYNmTFF.net
■実施したい事【詳細】
DataTable^ tbl;//←DataAdapterのFillメソッドで取得したDataSet内のDataTableだとします
while(10000行程度ループ){
DataRow^ tg_row = tbl->Rows->Find(ループ毎に変わる値);
if( static_cast<DataRow^>(tg_row)==nullptr){
DataRow^ row = tbl->NewRow();
row["hogehoge"] = ループ毎に変わる値;
tbl->Rows->Add(row);//←★★★★★★初期挿入★★★★★★★
}
else{
row["hogehoge"] = ループ毎に変わる値;
}
}
上記のソースで5000行のレコードが出来たと仮定します。
※つまり"ループ毎に変わる値"の重複が半分あったということ
この状態でUPDATEを行うと、
なぜか、初期挿入した順番通りにinsert文が発行されません。
※DB上で見ると順番がごちゃまぜです

172:デフォルトの名無しさん
16/04/19 21:55:46.63 spYNmTFF.net
■質問①
なぜ、初期挿入した順番通りにinsert文が発行されないのでしょうか?
tbl->Rows->Findで取得したレコードの値を変更すると順番が変更になってしまうのでしょうか?
■質問②
初期挿入した順番にinsert文が発行されようにするには、
どの様にしたら良いでしょうか?
解決策をご教授下さい。

173:デフォルトの名無しさん
16/04/19 21:58:17.34 18lMfaYE.net
順番を明確にしたいならソートして
変更フラグ調べて対応するコマンドを実行で出来るよ

174:デフォルトの名無しさん
16/04/19 22:08:45.35 spYNmTFF.net
>>173
ご回答ありがとうございます。
「変更フラグ調べて対応するコマンドを実行」とは具体的にどのように行うのでしょうか?
「ソートして」はselectメソッドで出来そうですが。。

175:デフォルトの名無しさん
16/04/19 22:10:10.36 BW352Iu7.net
>>165
うん。ゲーム向けということもあって
当初は一部で直接的な状態変化を許すようにしたかったんだけど、
ここのスレで考え直して不変性で行くようにしたわ

176:デフォルトの名無しさん
16/04/19 22:15:13.64 jOKPCoVD.net
DrawEllipseについて質問です
Form画面一杯に円を描画したいんですが、Formと同じサイズにするとはみ出ます
はみ出ないように描画するためにはどうするんでしょうか?

177:デフォルトの名無しさん
16/04/19 22:37:54.89 g+zezqhN.net
ClientSize を使ってみて

178:デフォルトの名無しさん
16/04/19 22:38:11.64 BSyvOmTa.net
ClientSize を使ってみて

179:デフォルトの名無しさん
16/04/20 18:04:20.00 1NxpeD4K.net
ありがとうございます。解決しました

180:デフォルトの名無しさん
16/04/20 20:37:23.60 Wyg46U6+.net
おめでとう

181:デフォルトの名無しさん
16/04/20 22:02:30.33 e1Pe6e6t.net
かれこれ4年ほどやっているんですが中々スキルアップについて悩んでいます
今まで作った中で一番大きいプログラムは連番の画像をDLするようなツールで
規模にして2000行いくか行かないかくらいのアプリです
もう少し大きなアプリを作りたいという思いもあるんですが題材がなかなか見つかりません
何かいいスキルアップの方法ってないですか?

182:デフォルトの名無しさん
16/04/20 22:04:16.44 1OcdAU+S.net
何のためにスキルアップしたいの?
目的もなくダラダラやってても、無駄な時間を過ごすだけだと思うが。

183:デフォルトの名無しさん
16/04/20 23:05:37.65 mNDzLHec.net
目的次第だな
派遣で大手の開発に潜り込むとかはvisualstudio+c#の仕事多い気がする
フリーで請負やりたいってなったらjavascript+php+DBの求人多いね
ゲームならunity多いね
組み込みならまだc言語だね
たまになんでも出来る奴いるけど人生1回きりなので
どれかに絞らないと無駄になるね

184:デフォルトの名無しさん
16/04/20 23:42:55.98 wpi37QIO.net
人生1回きりなんだから、働かないで遊ぶべし

185:デフォルトの名無しさん
16/04/20 23:49:30.77 oj6NjU7C.net
つまり仕事と称して遊んでる俺が最強だってことだ

186:デフォルトの名無しさん
16/04/21 00:30:43.58 TAQ7ZexJ.net
だよな。w

187:デフォルトの名無しさん
16/04/21 00:41:45.98 XUyGSZPy.net
ネット見て遊んでれば黙々と作業するしか取り柄ないコミュ症が仕事進めてくれるから楽だよね
成果吸い上げ美味しいわ

188:デフォルトの名無しさん
16/04/21 10:20:04.06 4YMbhNff.net
特価(実質)ばっかりのサイトマジうぜえ

189:デフォルトの名無しさん
16/04/21 14:37:39.90 6glAyuzY.net
以下のサイトのコードでファイルの種類やアイコンを取得しているのですが
ファイル名に簡体字等が含まれている場合にはファイルの種類やアイコンが取得できないようです
どこをいじれば取得できるようになるでしょうか?
public IntPtr iIcon;は
public int iIcon;に修正済です。
URLリンク(www7b.biglobe.ne.jp)

190:デフォルトの名無しさん
16/04/21 14:45:42.79 u3YeNO8B.net
>>189
ファイル名ではなく拡張子を渡せばOK。

191:デフォルトの名無しさん
16/04/21 16:07:50.70 6glAyuzY.net
>>190
ありがとうございます。
具体的には何処をいじればいいでしょうか。

192:デフォルトの名無しさん
16/04/21 16:37:10.15 u3YeNO8B.net
えっと、とても具体的に書いたのだけど・・・

193:デフォルトの名無しさん
16/04/21 16:51:48.83 6glAyuzY.net
>>192
当方の知識が乏しく申し訳ありません。
何とかAssocQueryStringでアイコンは取得できましたがファイルの種類が取得できません。
ファイルの種類もこれで可能でしょうか?

194:デフォルトの名無しさん
16/04/21 17:11:07.55 3rYhxZg6.net
>>193
SHFILEINFOの2番目のメンバ
public IntPtr iIcon; は public int iIcon; の間違い

195:デフォルトの名無しさん
16/04/21 22:23:03.48 XUyGSZPy.net
Microsoft Unityの設定を書くのがめんどくさいので命名規約にしたがって自動で解決方法を登録するような拡張を探してます
なんかイカすパッケージはないですかね?

196:デフォルトの名無しさん
16/04/21 22:45:55.77 eO4KH25y.net
とあるWebサービスを管理してるクラスがあって、そのサービスは
セッション終了時に必ずPOSTリクエストを送らなきゃいけないんですけど、
こういう場合ってDispose時に同期メソッドでPOSTするとまずいですかね?
重い処理だし例外とか面倒くさいけど、クラスの利用者側がクソでも確実に
終了する方法が思い付かないです...

197:デフォルトの名無しさん
16/04/21 23:16:44.32 yP6FvWlL.net
>>196
老害ならダメと言うかもしれんが、別に良いんじゃね?

198:デフォルトの名無しさん
16/04/21 23:40:14.40 XUyGSZPy.net
>>196
POSTしないとどうなるかによるね
致命的ならDisposeでもなんでも使って終了させる
どうでもいいならログに警告吐いて終わり

199:デフォルトの名無しさん
16/04/22 02:25:19.85 2O2AFXWq.net
いちおうCloseメソッドとか作って利用者が明示的に呼ぶ事を期待、じゃないかな
CloseされてないときだけDisposeでやるようにする
それでDisposeに問題が発生するとしても、明示的にCloseしない利用者の責任ってことで

200:デフォルトの名無しさん
16/04/22 08:15:05.87 iECKWrH4.net
>>196
フレームワーク的にやるのが筋だろ
ASP.NET MVCならアクションフィルタとか

201:デフォルトの名無しさん
16/04/22 08:43:13.25 2EQFG1P2.net
public class ToiletService : IToiletService {
public void DoSomething(Action<IToilet> unko) {
using(var toilet = Toilet.Open()) {
unko.Invoke(toilet);
toilet.Flush();
}
}
}

202:デフォルトの名無しさん
16/04/22 09:13:23.16 cftYZ2jV.net
>>201
ちゃんとセクション毎にタブで文字の字下げしないひと嫌い

203:デフォルトの名無しさん
16/04/22 09:41:07.51 9S1lJb0Y.net
タブや半角スペースでインデントして書き込んでもWebの性質上消されて表示されるんだぜ?
書き込み用にわざわざ全角スペに変換するならインデントいきたままに見せれるけど
コピペのとき邪魔になるわな

204:デフォルトの名無しさん
16/04/22 09:43:28.96 2EQFG1P2.net
プログラム板だけでいいからデフォでスペース自動変換してほしいな

205:デフォルトの名無しさん
16/04/22 09:57:00.19 mQXcsQi9.net
>>201
>unko.Invoke(toilet);
はunko(toilet);って表記じゃダメなの?

206:デフォルトの名無しさん
16/04/22 10:54:52.81 qVJQkB7k.net
どちらでも良い。
?.使うならInvoke必須。

207:デフォルトの名無しさん
16/04/22 10:59:36.45 cftYZ2jV.net
>>205
なんか、すごく汚いね

208:デフォルトの名無しさん
16/04/22 16:44:55.96 2oPwrKOX.net
デバック中に、配列の中とか除いて確認しますけど、
たとえば配列の中身が3000件とかなると、スクロールして目的のインデックスまで
えらい時間がかかるのですが、何かいい方法あるのでしょうか

209:デフォルトの名無しさん
16/04/22 17:03:15.87 IxR/zQ/0.net
ウォッチウィンドウだかを使う

210:デフォルトの名無しさん
16/04/22 18:46:50.13 Q2FR8u3x.net
c#で作ったexeに発行元 設定したいのだけど、一番何がお手軽?

211:189
16/04/22 19:28:54.07 KP5eSs7K.net
自己解決しました。
[DllImport("shell32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
private struct SHFILEINFO
これで簡体字等がファイル名に含まれていても正常にアイコンとファイルの種類が取得できました。

212:デフォルトの名無しさん
16/04/22 19:36:47.23 mQXcsQi9.net
>>206
サンクス、この表記でスレッドセーフにもなるとか便利なもんだな

213:デフォルトの名無しさん
16/04/22 19:57:45.03 qVJQkB7k.net
>>212
スレッドセーフになるのか。
それは知らなかったw
逆にありがとう。

214:デフォルトの名無しさん
16/04/23 11:33:22.03 hd+Xs9LW.net
//でコメントアウトしたり、#regionを入れているときに
+にして折りたたんでいるのがいつの間にか開いてるんだけど、これどーにかならないの?

215:デフォルトの名無しさん
16/04/23 16:23:35.92 YertDzF3.net
>>214
だれが開いてるのかね

216:デフォルトの名無しさん
16/04/23 20:23:11.71 PVRMM1xg.net
マイクロソフトのユニットテストについて質問です。
各テストメソッドにコンストラクタとデストラクタのようなものを仲介させることはできますか?
例えば、データベースに接続する、切断する手続きをテストメソッドの外に出して共通化したいです。
できれば、テストを全てを実施した時はメソッド事にコネクションを作るのでなく、1度だけコネクションを作って、使い回して欲しいです。

217:デフォルトの名無しさん
16/04/23 20:34:36.92 jg2YTAuP.net
>>212
どこ情報だよ?

218:デフォルトの名無しさん
16/04/23 20:38:41.52 jg2YTAuP.net
>>216
TestInitialize
TestCleanup

219:デフォルトの名無しさん
16/04/23 20:40:52.87 qxH0rFYn.net
>>213
>>217
誤解させたかも知れないけどnullチェックの部分がスレッドセーフになるってことね
Null 条件演算子 (C# および Visual Basic)
URLリンク(msdn.microsoft.com)
null 条件メンバー アクセスの別の用途は、はるかに少ないコードのスレッド セーフな方法でデリゲートを呼び出すことです。従来の方法には、次のようなコードが必要です。

220:デフォルトの名無しさん
16/04/23 23:56:32.96 XhOpS8Qb.net
>>216
コネクションを使いまわすと、あるテストの結果が他のテストに影響を与える可能性があるから、できれば避けた方が良いかと。

221:デフォルトの名無しさん
16/04/24 11:43:25.04 RNhCJQSk.net
データベースのモック化ってどうしてるんだ
リポジトリパターンを採用すれば簡単にモック化できるけど
アーキテクトが三流の弊社じゃリポジトリパターンなんて使わせて貰えないよ

222:デフォルトの名無しさん
16/04/24 15:33:43.49 32bdvmlM.net
未確認飛行Cってサイトの「C#によるプログラミング入門」を読んでて、
「はじめての C# 実演編」とか「プログラムの作成・実行」のリンク踏むと落ちるんだけど俺環?

223:デフォルトの名無しさん
16/04/24 15:37:35.66 t17Hjq39.net
そうだよ
どんなサイトだろうと落ちるは無いわ

224:デフォルトの名無しさん
16/04/24 15:42:32.68 32bdvmlM.net
JavaScriptのコードが入ってるサイトなら落ちる可能性はあると思うけどなー

225:デフォルトの名無しさん
16/04/24 15:48:26.89 RNhCJQSk.net
なんだ新しい脆弱性か?

226:デフォルトの名無しさん
16/04/24 15:54:30.54 32bdvmlM.net
ぱっと見共通しているのはyoutubeの動画が埋め込まれている点か
火狐とchromeで試したら開けたわ
IEが逝ってたのか

227:デフォルトの名無しさん
16/04/24 15:56:21.23 YOklMNkc.net
>>222
スペック不足かと・・・
PCでも若干遅いからスマホだと落ちそうだね
スマホのブラウザ少し重いページ見たらすぐ落ちるし

228:デフォルトの名無しさん
16/04/24 15:56:59.45 YOklMNkc.net
スマホじゃなくてIEかよ

229:デフォルトの名無しさん
16/04/24 18:24:44.67 /Ix23UGp.net
今日府中やってる?


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch