19/06/05 06:00:31.88 zagML6/E0.net
>>311
デザインの自由度は非常に高く、見た目をがらりと変えるのも比較的簡単に出来る。
ただし、出来合いのテーマとかはほとんど無い。標準のは古すぎるし。
標準でスケールするので、最低限の高DPI対応は何もする必要が無い。
320:デフォルトの名無しさん
19/06/05 06:44:41.46 vfWMaWlM0.net
ライブラリをstaticでusingしてるコードを見たのですが、静的にusingするってよく使われるやり方なのでしょうか?
あまり考えた事が無かったので
321:デフォルトの名無しさん
19/06/05 07:12:31.52 5J+xpv5ma.net
>>313
お世辞にも単純ではないわ
言語仕様の大きさでいうと現役のメジャーな言語の中じゃC++に次ぐくらいだよ
322:デフォルトの名無しさん
19/06/05 07:34:20.65 YfXCXcb80.net
static using を質問した者ですが、静的メソッドをクラス省略して呼び出す方法なのですね
自己解決か解りませんが、クラスをいちいち書くのが大変な時に便利な機能だと理解しました
323:デフォルトの名無しさん
19/06/05 08:12:16.71 8Q4nOq27d.net
>>316
ソース
324:デフォルトの名無しさん
19/06/05 09:09:32.49 DllhRP4m0.net
>>308
犯罪ではないが規約違反だな。
あと、初心者が作れるようなものでもない。
つまりはスレ違い。
325:デフォルトの名無しさん
19/06/05 09:13:04.00 cY5QBS5fa.net
c++に次ぐかはどうかは知らないけど言語仕様的には肥大し続けてるのは間違いないよ
確実にjavaよりは言語仕様が大きい
最近のメジャーな小さな言語仕様とは真逆の方向性
326:デフォルトの名無しさん
2019/06/0
327:5(水) 09:16:17.04 ID:cY5QBS5fa.net
328:デフォルトの名無しさん
19/06/05 09:19:05.78 56z2teCB0.net
MFCの場合、Command Routing なる概念があり、MDI で複数の子 Window を
出している場合に、Main Window のMenuから選んだメニュー項目を、
現在 Active な子 Window に対して「伝達」することができて、
CView::OnXxxx() のようなメソッドで受け取ることができました。
Xxxx の部分には、Menu項目の名前に関係した関数名が入ります。
MENU 項目には、IDM_XXXX のような定数値を関連付けておいて、
「メッセージマップ」なる場所に、
ON_COMMAND(IDM_XXXX, OnXxxx)
と書いておいて、ID 値とメソッド名を対応させます。
重要なのは、実行段階でその時にActiveになっているCViewにメッセージを伝達
することで、複数の子ウィンドウが有った場合、どの子ウィンドウがActive
になっているかによって、伝達されるCViewは変化します。
あと、このIDM_XXXとメソッドの関数定義、メッセージマップの項目は、全てIDEが
自動生成する機能があります。
C#でも同様のことはできますか?
329:デフォルトの名無しさん
19/06/05 09:27:44.31 cY5QBS5fa.net
何のことを言ってるかわからないけど
アクティブな子windowにメッセージは送れるよ
子ウィンドウによって処理を変えるのはそのように書けばいいだけで専用の仕組みはないと思う
330:デフォルトの名無しさん
19/06/05 09:29:46.05 DllhRP4m0.net
>>322
MFCはVCで使うライブラリ。C#は言語。比べる対象が間違っている。
つか、ぐちゃぐちゃ書かれていて何をしたいのかが良くわからない。
マルチフォームで、親のメニューから選んだ動作を、複数の子フォームがある中、アクティブなフォームに対してイベントを発生させることができるかって事ならWPF/UWPともに可能。
331:デフォルトの名無しさん
19/06/05 10:10:34.69 on5LrBrya.net
>>322
たぶんないのでは
でもそもそもActiveなMDI子に連動してイベントハンドラが切り替わるコードというのは
保守しづらいのでは?
MDI子のメニューは親のメニューにマージできたはずなので、
そっちを使った方がよいんじゃないかなあ
URLリンク(dobon.net)
332:デフォルトの名無しさん
19/06/05 10:32:52.53 lB0CTQ9/0.net
>>319
あんたはつくれんの?
333:デフォルトの名無しさん
19/06/05 10:43:39.28 aCuLxY/Qa.net
>>326
ここで粘着していてもお前さんの求めるものは得られないから、さっさと適切な場所に移動しな
334:デフォルトの名無しさん
19/06/05 10:48:56.78 lB0CTQ9/0.net
誘導するなら案内しろ
335:デフォルトの名無しさん
19/06/05 10:49:34.68 DllhRP4m0.net
>>326
Windowsでまともに動くiOSエミュがあるか?
それが答え。
336:デフォルトの名無しさん
19/06/05 12:40:57.59 lOa/gLJfr.net
最初>>301を書いた人物だとしたら脳が死んでそうだからその人には無理でしょ?
外人なのか馬鹿なのかどちらか
337:デフォルトの名無しさん
19/06/05 13:03:15.97 lOa/gLJfr.net
[RPA]PC自動化技術総合スレ[効率化] Part.4
338:デフォルトの名無しさん
19/06/05 13:04:06.56 lB0CTQ9/0.net
>>330
脳死なのにタイピングはできるんだね。お前
339:デフォルトの名無しさん
19/06/05 13:05:08.86 lOa/gLJfr.net
ここは願望を書くスレじゃないぞw
バカかw
340:デフォルトの名無しさん
19/06/05 13:09:17.91 TKKYwlvh0.net
その脳死より頭が悪いとか君はゴミか何か?
341:デフォルトの名無しさん
19/06/05 13:10:56.81 lOa/gLJfr.net
> とあるゲーム
>
> アプリを自動化したいと思ってる
味わい深いwwwwwwww
342:デフォルトの名無しさん
19/06/05 13:22:45.31 HUq/2QFD0.net
どうせアフィブログ転載用の質問でしょ
343:デフォルトの名無しさん
19/06/05 13:24:53.87 56z2teCB0.net
>>323
>アクティブな子windowにメッセージは送れるよ
>>324
>マルチフォームで、親のメニューから選んだ動作を、複数の子フォームがある中、
>アクティブなフォームに対してイベントを発生させることができるかって事なら
>WPF/UWPともに可能。
どうやるんでしょうか?
344:デフォルトの名無しさん
19/06/05 13:27:21.19 56z2teCB0.net
>>325
>MDI子のメニューは親のメニューにマージできたはずなので、
>そっちを使った方がよいんじゃないかなあ
なるほど。
ならば、編集メニューのコピー・ペーストなどの場合は、子ウィンドウ
それぞれが自前でメニューを持っていて、それを親にマージするんで
しょうか?
345:デフォルトの名無しさん
19/06/05 13:55:27.85 on5LrBrya.net
>>338
そうじゃないですか。
Formも派生させることができるしイベントハンドラもvirtualにできるので、
必ずしも馬鹿正直に全部のMDI子にTextが同じメニューアイテムを持たせる必要はないと思う。たぶん。
346:デフォルトの名無しさん
19/06/05 16:17:26.11 4nYErmG50.net
どうでもいいことだが、UWPは画面は常に一つってのが基本だから
アクティブなフォームにイベントで通知って概念が間違っている
347:デフォルトの名無しさん
19/06/05 16:32:23.33 DllhRP4m0.net
>>340
つ MasterDetail
348:デフォルトの名無しさん
19/06/05 18:27:29.26 cGG6I1H4M.net
メソッド化してコードを見やすくすることについて質問させてください
僕にC#を教えてくれている人に「現状のコードだと見づらいから同じ処理はメソッド化して見やすくしなさい」と言われたのですが、
同じ処理をメソッド化すると、その処理内で使われていた変数が後ろのほうのコードでも使われてまして、
結局メソッド化した処理の中で使われている変数をまた宣言しないといけないハメになってしまっているのですが、どうすればいいのでしょうか?
プログラミング初心者なのと、文章が下手で凄くわからづらいかもしれませんが、どうかよろしくお願いします
349:デフォルトの名無しさん
19/06/05 18:34:52.52 QfSKspk80.net
いやまずその教えてくれる人に聞けばいいじゃん
350:デフォルトの名無しさん
19/06/05 18:49:27.84 Y52bWe2XM.net
>>342
引数で渡すのが王道
そうすることで読み手にメソッドの呼び出し順が固定できる
351:デフォルトの名無しさん
19/06/05 19:40:07.54 0jYbMqQia.net
>>342
メソッドとして切り出した箇所の後ろの方で使っていたという部分について、同じ名前の変数を宣言し直して新たな値(メソッド化した範囲で使っていた内容とは無関係)を設定し直しているということだとしたら、それで問題ないよ。
もともと独立した内容に同じ変数を使用していたというだけだから。
352:デフォルトの名無しさん
19/06/05 20:16:57.88 cGG6I1H4M.net
>>344
引数について再度よく調べてみます
>>345
ということはメソッド化しても再度変数を宣言し直さないといけないということですか?
それだとメソッド化する意味がないような……
質問に答えていただきありがとうございます
353:デフォルトの名無しさん
19/06/05 21:20:18.71 UHR6+GQga.net
>>346
変数の宣言をし直すことは何らデメリットではないぞ。
変数を使用するスコープを小さくしてその都度宣言できるようなら、むしろそうした方が良いくらいだよ。
具体的なコードを見てみないと何を問題視しているのか分からんが...
354:デフォルトの名無しさん
19/06/05 21:52:08.97 U9r1UeN50.net
エスパーすると
メソッド化してもメソッド側と呼び出し元に同じ変数宣言するけど良いの?
って感じか
引数やら戻り値で済みそうな話ではあるが
ローカル関数なんてのも使えるけどね
355:デフォルトの名無しさん
19/06/05 22:12:43.65 wGVmv/E80.net
グローバル変数的なものをやりたいんじゃないの?
例えば int i を宣言したら色々なメソッドのループ処理でそれを使いたいとか
356:デフォルトの名無しさん
19/06/05 22:34:27.36 Ut2vcZyxd.net
え…
357:デフォルトの名無しさん
19/06/06 03:57:36.08 icdwfxAZ0.net
>>346
変数のスコープ、有効範囲について勉強すると良いよ。
358:デフォルトの名無しさん
19/06/06 07:30:22.90 hsoM7R9V0.net
100以上の広域変数の状態を自由に扱えるようになったらそのプロジェクトは君が囲い込める
359:デフォルトの名無しさん
19/06/06 08:38:25.78 FUDF17OO0.net
>>352
レビューの時点でダメ出しくらうだけ
360:デフォルトの名無しさん
19/06/06 09:18:31.73 pf3DvXcp0.net
>>339
なんとなく分かってきました。
みなさん有難うございました。
361:デフォルトの名無しさん
19/06/07 02:17:34.41 82+Qy1ow0.net
DIコンテナに登録したオブジェクトをインスタンス化する際、コンストラクタに引数を渡すことってできないのですか?
ライブラリはMicrosoft.Extensions.DependencyInjectionを使用しています
362:デフォルトの名無しさん
19/06/07 02:33:56.03 kuDYI/kq0.net
できるよ
363:デフォルトの名無しさん
19/06/07 14:30:40.52 ZpgeSWQ/0.net
FormLoad時に、DataGridViewに何もDataSoureを割り当てていませんが
からの1行が表示されてしまっています。
これは、何が原因でしょうか?
画像とボタンの列があります。初めて使うのですが、これが原因でしょうか???
364:デフォルトの名無しさん
19/06/07 14:43:54.47 ZpgeSWQ/0.net
自己解決しました。
365:デフォルトの名無しさん
19/06/07 18:39:19.47 zRuFxC25M.net
私にはすべてが見えていました
366:デフォルトの名無しさん
19/06/08 09:09:33.88 ctcrb20I0.net
var list = new List<int>
list.Max();
のようなnullデータにリンクメソッドをチェーンするとエラーになりますが、nullデータの場合は無視するという記述は出来るでしょうか
367:デフォルトの名無しさん
19/06/08 09:12:48.20 rnAwjmmK0.net
>>360
>>110-114
368:デフォルトの名無しさん
19/06/08 09:30:34.63 ctcrb20I0.net
>>361
同スレで既出と気付きませんでした
参考になります
ありがとうございます
369:デフォルトの名無しさん
19/06/08 09:44:30.27 2mGSrtdCa.net
>>360
nullデータというよりも空リスト、空シーケンスなどと表現したほうがいいかな
Max()メソッドそのものが空リストの場合はInvalidOperationExceptionをthrowするんだけど
Nullable版のMax()を使えば空リストの場合はthrowするのでなくnullを返すようになる
var list = new List<int>();
int? elem = list.Cast<int?>().Max();
if (elem == null) { Console.WriteLine("空"); }
else { Console.WriteLine(elem.Value); }
370:デフォルトの名無しさん
19/06/09 23:07:07.34 xU4n/JWt0.net
ガッツリ動作が仕様に絡むとこまでお手軽に記述したがる感覚ってわからんな
371:デフォルトの名無しさん
19/06/09 23:21:14.22 1L6M6LAR0.net
#me too
372:デフォルトの名無しさん
19/06/10 02:33:24.81 c/9rL5aT0.net
独立性拡張性が失われちゃう
373:デフォルトの名無しさん
19/06/10 10:46:09.39 tveaGfmTp.net
なんだっけ、MVCモデルだっけ?
あんなん崇拝するから日本人の作るアプリは操作性最悪なんだけどね。
374:デフォルトの名無しさん
19/06/10 11:09:25.95 QmsKOsl+0.net
レッテル貼り乙
375:デフォルトの名無しさん
19/06/10 11:24:14.99 qkVPdWMn0.net
やっぱMVVMだよね
376:デフォルトの名無しさん
19/06/10 11:42:49.78 PIG+DB1Sd.net
設計モデルとユーザー操作性に因果関係あんの?
377:デフォルトの名無しさん
19/06/10 12:16:49.56 PMN6sAhZa.net
昔はよくウィザードが例に出されたけど、
設計が伴わないと実現が難しいUIというのは確かにあると思うよ
378:デフォルトの名無しさん
19/06/10 12:30:25.19 VMXLuCX0d.net
>>367
日本人はむしろMVCすら使えないやつが多いんじゃね?知らんけど
379:デフォルトの名無しさん
19/06/10 12:46:04.73 OnQgNCpHp.net
>>367
こういう設計思想もろくにしらん馬鹿がITにかかわるから操作性が無視されたアプリができるんだと思う
380:デフォルトの名無しさん
19/06/10 16:25:53.91 0NZRWrrl0.net
>>373
禿銅
381:デフォルトの名無しさん
19/06/10 18:16:01.01 j15NsR7HM.net
共通部分を増やせば増やすほど
コピペが難しくなって工数が増大していく
画面数300とか行くとさ
画面をまたいだ共通箇所って邪魔で邪魔で
しかたねーよ
382:デフォルトの名無しさん
19/06/10 19:30:29.84 0NZRWrrl0.net
抽象化しろや
383:デフォルトの名無しさん
19/06/10 19:41:59.07 MrgpB0NP0.net
>>376
一番邪魔なやつだそれ
実際の処理がソースで追えなくて
実行してブレークポイントで止めてステップ実行しないと
本当の処理がわからない欠陥品
ぶっ飛ばしてやりてぇ
384:デフォルトの名無しさん
19/06/10 19:43:24.33 +AzPxr5na.net
追わなくてよくなるんだよ
追うなテストしろ
385:デフォルトの名無しさん
19/06/10 19:46:43.72 MrgpB0NP0.net
>>378
意味わからん
コピペするのにどの処理持ってくりゃいいんだよ
こっちの処理は分岐なんかしねーんだよ
386:デフォルトの名無しさん
19/06/10 19:47:25.12 aFtuMg1K0.net
DataGridViewの中にボタン列を追加しました。
ぐぐってますが、DataGridView上のボタンを非活性に
する事はできないのでしょか?
Visual Studio2017を使用しています。
387:デフォルトの名無しさん
19/06/10 19:48:38.10 bMUfCd/90.net
だから手でテストしてんだろw
この涼しいのに沸いてるのw?
388:デフォルトの名無しさん
19/06/10 19:50:13.10 bMUfCd/90.net
>>380
URLリンク(docs.microsoft.com)
389:デフォルトの名無しさん
19/06/10 19:52:29.65 MrgpB0NP0.net
>>381
テストまでいってねっつのアホなん?
390:デフォルトの名無しさん
19/06/10 19:55:32.78 MrgpB0NP0.net
抽象化されたソースから追えないゴミカスコードをどうやってコピペしたらいいですか?
インターフェース同じやつ片っ端から貼りまくればいいですか?
36っこありますね
→ウンコですね New!
391:デフォルトの名無しさん
19/06/10 19:59:23.27 +AzPxr5na.net
コピペできないって悩むってことはやっぱり抽象化が正解なのか
いかに下っ端コーダーにコピペをさせないかがプロジェクト成功の鍵だからな
392:デフォルトの名無しさん
19/06/10 20:07:55.28 MrgpB0NP0.net
>>385
バカじゃん
まるごとコピペして名前だけ変えて放置だっつの
こんなキタネェコード付き合ってらんねーよ
1クラス1ファイルで書いてあるけどこんなゴミにこんなファイル数いらねーよ
Xxx.csに全部ツッコんでやった
まとめてゴミ箱だw
アンチパターン「マトリョーシカ」「たけのこの皮」「玉ねぎの皮」「マズイミルフィーユ」とか名付けたい
くだんねー薄皮クラス全部いんねっつーの
393:デフォルトの名無しさん
19/06/10 20:09:50.35 +AzPxr5na.net
>>386
はいリジェクト
ばいばい
394:デフォルトの名無しさん
19/06/10 20:37:44.89 MrgpB0NP0.net
逃げたか
395:デフォルトの名無しさん
19/06/10 22:36:29.43 aFtuMg1K0.net
>>382
そこまでしないと実装できないんですね。
Enabled=False
でできればよかったのですが、うーんどうしよう。
396:デフォルトの名無しさん
19/06/10 23:01:39.91 mjEnv2YNd.net
>>389
サンプルの
DataGridViewDisableButtonCell
をコピペで持ってきたらいいだけじゃん
397:デフォルトの名無しさん
19/06/10 23:28:43.62 MrgpB0NP0.net
でも正直なんでこんな面倒臭いの?ってぐらい作ったやつのセンスが悪いよね
398:デフォルトの名無しさん
19/06/10 23:40:05.50 ZWxvLRT60.net
C#は Visual Studio のサポート機能が無いと、コード書ける気しないわな。
399:デフォルトの名無しさん
19/06/10 23:57:56.14 aFtuMg1K0.net
>>390
それすら面倒だけどやってみます。
MSが普通にEnable実装しておけば、俺たちは True Falseの設定だけでできたのに。
400:デフォルトの名無しさん
19/06/10 23:58:17.24 s/X+Cj/I0.net
>>392
最近よくVisual Studio Codeで書いてるよ
401:デフォルトの名無しさん
19/06/11 00:20:18.
402:49 ID:eYjHCkmz0.net
403:デフォルトの名無しさん
19/06/11 00:27:16.57 KO5Z5H7da.net
WinFormsのコントロール全般だけど、MSとしては>>390程度のことは
自前で継承して作り込んで使ってくれっていうスタンスだからなあ
(MSDNのドキュメントもそれ前提の書かれ方だし)
作りこむのが面倒であればGrapeCityとかが売ってる高機能なコンポーネントを使えばいいわけだし
404:デフォルトの名無しさん
19/06/11 00:29:30.86 VMcLTapW0.net
>>395
ちょっとでも使われ方の検討したのかよ
ってレベルじゃね?これ
405:デフォルトの名無しさん
19/06/11 01:03:45.60 8NPGWhvc0.net
>>395
そういう問題じゃなくて、ボタンにEnable False True入れるなんて常識だろ。
それ位実装しとけよ。くそMSって話。
406:デフォルトの名無しさん
19/06/11 01:12:02.27 fTJbh9kM0.net
>>398
こいつWebアプリ開発させられたら発狂しそう
407:デフォルトの名無しさん
19/06/11 01:38:08.73 ogrGMDt8a.net
今日のNGはこれか
VMcLTapW0
真っ赤にして待ってろ
408:デフォルトの名無しさん
19/06/11 01:45:34.19 VMcLTapW0.net
なんか普通のことが普通にできなくなって開発者からそっぽ向かれてない?
wpfなんかこんなののオンパレードだし俺ら工場のおっさん向けアプリ作ってるだけなんに
必要のない変な機能多すぎ
その割にこんな簡単な機能は未実装って
未完成ってレベルじゃないよね
409:デフォルトの名無しさん
19/06/11 01:48:32.42 p0Xp2yNy0.net
>>401
そんなに同意して欲しいなら同意してやるからもう寝なよ
410:デフォルトの名無しさん
19/06/11 01:51:14.95 VMcLTapW0.net
>>402
むしろお前こそ言いたいことがあるならハッキリ言うべき
無言でユーザだけ減ってる状態に苦労してると思うぞmsは
411:デフォルトの名無しさん
19/06/11 02:17:35.18 FGV57sZTd.net
>>403
言いたいことはお前が無能ってことだよ
412:デフォルトの名無しさん
19/06/11 02:19:21.88 AmszXiFy0.net
お前みたいな馬鹿が尻の穴嘗めてくれるからウハウハだぞバカ
413:デフォルトの名無しさん
19/06/11 02:28:30.43 VMcLTapW0.net
多分、日本はwindowsで作った資産があるけど
そうでない国はお金がないからわざわざWindowsを使わない
そんな状態が続いたもんだからlinuxの資産が貯まってしまって
お金を持っても今度はWindowsには移行できない
そんな事情のある最近のlinuxに寄り添ってる理由だろ
昔はその作りやすさから王者だったけど
最近そーでもねーのが致命的になってんじゃねーのか?と
414:デフォルトの名無しさん
19/06/11 02:33:30.92 mh1wU8omM.net
クソ長文書いてねえで寝ろクズ
415:デフォルトの名無しさん
19/06/11 03:14:41.06 aZcuYhl50.net
HTML のボタンには、disabled 属性もある
416:デフォルトの名無しさん
19/06/11 07:09:30.30 nARElikq0.net
もうwebオンリーで行くかなと思ったけどバーコード使いたいと言われるとFormeアプリ使わんとダメだよね
XAMLは流行る予感がしないから触る事ないな
417:デフォルトの名無しさん
19/06/11 08:52:13.44 eYjHCkmz0.net
Webでバーコード扱えるけど
418:デフォルトの名無しさん
19/06/11 10:34:45.11 q+xysia0d.net
Shape Detection APIな。
PCのChromeでも動けば動作検証楽なのになぁ、あれ。
419:デフォルトの名無しさん
19/06/11 14:05:54.20 6dm7scj8M.net
リーダーをUSBに差せばWebでも使えるやで
420:デフォルトの名無しさん
19/06/11 14:08:24.54 8NPGWhvc0.net
ふぅーDataGridViewのボタンの非活性できた。
MSはその程度実装しておけよ
421:デフォルトの名無しさん
19/06/11 14:27:25.63 irqLdUAC0.net
CheckBox も同様だけど、Visible と Enable くらいは実装しとけよ、って思うよなぁ
WinForms に対しては全くやる気ないみたいだけど
422:デフォルトの名無しさん
19/06/11 14:41:17.27 8NPGWhvc0.net
>>414
実装もそこまで時間かかるとは思えないんだよな
なんか詰めが甘いというか・・・
しかもVS2017になっても未実装って
423:デフォルトの名無しさん
19/06/11 15:25:57.49 irqLdUAC0.net
x64 のときは Form_Load の中での例外はスルーするバグも絶賛放置
(x86 だったら、ちゃんと例外を捕捉する)
424:デフォルトの名無しさん
19/06/11 15:57:17.26 dpi3ASg30.net
Windows Formなんてとっくに見捨てられてるからね。メンテナンスフェーズかも知れん。WPFですら10年前だし。ということでUPF使え。
…ってMSは思ってるかもだが、Formなにかと楽なんだよなあ
425:デフォルトの名無しさん
19/06/11 16:23:20.80 8NPGWhvc0.net
俺がゲイツなら首にするわ
426:デフォルトの名無しさん
19/06/11 18:42:14.00 a3rgTFI7d.net
.NET Core3.0リリース後にちゃちゃっとPR書けば?そんなに簡単なら
427:デフォルトの名無しさん
19/06/11 20:32:19.05 3Y+SR7BCM.net
悪いけど、FullFx版のWinFormsとの互換性を損なうようなコミットは全部リジェクトだと思うよ
forkして弄るのは勝手だけど
428:デフォルトの名無しさん
19/06/11 20:58:05.88 fTJbh9kM0.net
>>420
.NET Core3.0後にどうなるかはまだ不透明
現状はそうだけどね
429:デフォルトの名無しさん
19/06/11 21:10:59.72 HH9jnqHSa.net
どのみちMS自身が今後WinFormsに機能追加をすることはありえないんだから、縛りのきつい公式リポジトリに拘る意味がないでしょ
WinFormsをクロスプラットフォーム化するコミュニティプロジェクトは必ず立ち上がるから、それに参加したらいい
430:デフォルトの名無しさん
19/06/11 21:15:40.32 GAHoXfWar.net
>>422
WinFormsのクソな部分がそのまま移植されるとは思わないから別物になると思う
汎用的な部分だけ移植なら整合性が合わなくなるからそもそも新しいの作るだろ
431:デフォルトの名無しさん
19/06/11 21:40:49.66 HH9jnqHSa.net
>>423
残念ながらベタ移植だよ
ほとんどのソースはオリジナルからコピーしてきてヘッダコメントを変えただけ
WinFormsをCoreでビルドできるように手直ししただけの代物だ
WPFなんかC++/CLIにべったり依存してるからもっと酷くて、
WPFをビルドするためだけにVCのコンパイラに限定的なCoreサポートを追加して無理矢理ビルドしてる
そんな不毛なことするくらいならネイティブ部分を書き直せと批判されてしばしばissueが炎上してるが、MSはガン無視
432:デフォルトの名無しさん
19/06/12 09:44:54.85 jI3pneRO0.net
DataGridView_hoge.AllowUserToResizeColumns = false;
列幅変更出来ない様にしたつもりですが、普通にドラッグしてサイズ変更出来てしまいます。
何が原因でしょうか???
433:デフォルトの名無しさん
19/06/12 10:24:07.46 0xThtXZC0.net
行ヘッダ列はAllowUserToResizeColumnsじゃなくてRowHeadersWidthSizeModeで設定しないといけないけど
それ以外の列ってことなら何か変なことやってるんじゃないのとしか言えないなぁ
434:デフォルトの名無しさん
19/06/12 10:29:24.57 jI3pneRO0.net
>>426
RowHeadersWidthSizeMode
ためしてみます。
435:デフォルトの名無しさん
19/06/12 21:10:32.82 MR/XkF+FM.net
なんかWindowsアップデートで動かなくなったりするから
Windowsやめようぜって方向になってるぞ
436:デフォルトの名無しさん
19/06/12 21:27:03.90 1sqooHn/0.net
どうぞ
437:デフォルトの名無しさん
19/06/12 23:03:21.43 AKIxT99i0.net
どうぞどうぞ
438:デフォルトの名無しさん
19/06/12 23:30:47.47 uj0EyW6pd.net
バイバーイ(^.^)/~~~
439:デフォルトの名無しさん
19/06/13 12:45:58.94 jjdzM/JQd.net
WPFの将来性ってどうですか?
今から勉強する価値ありますかね
440:デフォルトの名無しさん
19/06/13 15:02:14.86 5cAqIW1CM.net
>>432
将来性はない
勉強する価値もない
441:デフォルトの名無しさん
19/06/13 17:22:47.41 7q1+HOWFa.net
たぶん現状のまま放置されるって意味では将来性ないけど
Silverlightみたいに事実上使えなくなることは恐らくないから
勉強して無駄になることもないと思うよ
そいうや、何年か前にWin32を廃止する計画を読んだ記憶があるけど
例によって軌道に乗ってるように思えんねw
442:デフォルトの名無しさん
19/06/13 18:14:02.25 EM2pYCLsp.net
>>434
win32廃止したら、Windowsじゃ無くなるじゃん
443:デフォルトの名無しさん
19/06/13 22:23:06.18 tGgsvZyOd.net
>>435
win64 APIのみにするってことでしょ
444:デフォルトの名無しさん
19/06/13 22:27:30.58 dTdyRg7kM.net
ARM使い「そうか」
445:デフォルトの名無しさん
19/06/14 09:46:05.42 v6Wc7xsI0.net
>>436
Windowsから互換性取ったらMacとの優位性が崩れてしまうわ。
446:デフォルトの名無しさん
19/06/14 10:19:55.42 Qm4arTEGM.net
う互換性
447:デフォルトの名無しさん
19/06/14 13:28:36.75 Js4PARtC0.net
GDIとかいつまで残ってんだろ
448:デフォルトの名無しさん
19/06/14 13:36:31.53 Io9qelQj0.net
APIとしてはWindowsがある限り残るだろ
内部的に別の仕組みの描画フレームワークに渡すだけになる将来はあるかもしれんが
449:デフォルトの名無しさん
19/06/14 19:05:00.84 B1OfNWTta.net
独自OSはやめてLinux M$ディストリになったら最高なんだけどね
450:デフォルトの名無しさん
19/06/15 00:33:09.29 8CcGi59t0.net
while(i<=1000000)
{
i++;
}
こういうお手製のループって結局invokeと同じ機能なんですかね?
待つという意味では
451:デフォルトの名無しさん
19/06/15 02:59:58.42 h/MXyyEj0.net
質問です。
JSONシリアライズなんですけど
{ "foo": "bar" }
としたいのに、DataContractJsonSerializerに
Dictionaryをシリアライズさせると
{ "key": "foo", "value":"bar" }
となってしまいます。
何かいい方法ないですか?
どういうキーワードでググればいいかも分からなくて。
452:デフォルトの名無しさん
19/06/15 06:29:12.34 izWNJzhX0.net
>>443
何のinvokeの話なのか知らないけど
ほとんどのInvokeメソッドとは全く違うんじゃないかな
>444
DataContractJsonSerializerSettings.UseSimpleDictionaryFormat
453:デフォルトの名無しさん
19/06/15 07:12:02.05 +UtdpkHU0.net
ConcurrentDictionary<Guid, ConcurrentDictionary<int, string>>
のようなデータ構造で、Value部の付け外しにlock機構って必要ですか??
var cd = new ConcurrentDictionary<Guid, ConcurrentDictionary<int, string>>();
lock(_lockObj)
{
if(!cd.TryGetValue ・・・)
{
var child = ConcurrentDictionary<int, string>();
cd.TryAdd(Guid.NewGuid(), child);
}
}
2つのスレッドがほぼ同時にアクセスしたとき、
最初に追加したValue部(ConcurrentDictionary<int, string>)を潰したくないです。
lock使うなら、普通にDictionaryでいいんですかね・・ 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
454:デフォルトの名無しさん
19/06/15 07:35:12.58 IMLKv0k+0.net
getとaddが不可分操作じゃないから要る
455:デフォルトの名無しさん
19/06/15 09:17:07.61 6PSH/Imja.net
>>446
TryAddがfalseを返したら処理を最初からやり直せばいい
それならロックは不要
楽観的排他制御ってやつだ
456:デフォルトの名無しさん
19/06/15 14:37:59.48 qro2r2SGM.net
HttpClientもWebClientもHttpWebRequestもまともじゃないのは一体なんなんだ
457:デフォルトの名無しさん
19/06/15 14:47:05.46 hWID9DJjM.net
>>449
具体的には?
458:デフォルトの名無しさん
19/06/15 14:49:08.14 2Fwz82J/0.net
>>449
HttpClientはstaticなインスタンスでセッション使い回し。
このくらいの注意点は知ってるけどどう駄目なのか参考に教えてよ
459:デフォルトの名無しさん
19/06/15 15:37:24.10 CD9ImjzWM.net
>>449
KWSK
460:デフォルトの名無しさん
19/06/15 15:42:35.91 h/MXyyEj0.net
>>445
ありがとうございます!
461:デフォルトの名無しさん
19/06/15 18:51:55.25 Tm2el/yWa.net
>>449
これを使っている限りバグが出る可能性が排除できない
まともな設計で作り直してほしい
462:デフォルトの名無しさん
19/06/15 19:28:03.88 hWID9DJjM.net
>>454
具体的には?
463:デフォルトの名無しさん
19/06/15 19:39:46.98 2Fwz82J/0.net
具体的なことは言えないレベルでなんとなく否定してるに1票
464:デフォルトの名無しさん
19/06/15 20:17:44.79 p9QrGiGS0.net
まあHttpClientFactory使えってなるよね、最近は
465:デフォルトの名無しさん
19/06/15 20:49:10.87 Tm2el/yWa.net
HttpWebRequestやWebClientは確実にゴミ
例えば非同期でいろんなサイトからダウンロードするアプリを作ろうとしても
実インスタンスが一つなので各サイトに合わせて設定できない
HttpClientはまともにusingできない使いまわし前提で管理が面倒でバグりやすい
466:デフォルトの名無しさん
19/06/15 21:25:13.03 p9QrGiGS0.net
>>458
>>457
467:デフォルトの名無しさん
19/06/15 21:28:36.81 403fYel+0.net
いや知ってりゃ使えるだろってのはわかるんだが
なんでどれもこれも罠が満載なの? っていう話ね
468:デフォルトの名無しさん
19/06/15 23:31:09.76 2Fwz82J/0.net
>>457
なにこれ?ナウなやつ??
469:デフォルトの名無しさん
19/06/15 23:31:12.45 TLpy9Lqp0.net
MacのCore2.1でデリゲートのシリアライズを試してるんだけどさあ、これって動くプラットフォームもあるってことなの?
class Program
{
static void Main(string[] args)
{
Func<int, int> A = i => i + 1;
BinaryFormatter formatter = new BinaryFormatter();
var tempStream = new MemoryStream();
formatter.Serialize(tempStream, A);
//System.Runtime.Serialization.SerializationException がスローされました
//"Serializing delegates is not supported on this platform."
}
}
レファレンスだとMacで動かないとか特に書いてはいなさそうだけど、どこを見たらそういう情報ってわかるんだぜ?
URLリンク(docs.microsoft.com)
470:デフォルトの名無しさん
19/06/15 23:37:24.81 eE+hzs3Oa.net
>>462
ないでしょ
だってそれ、変数を一切キャプチャしないラムダ式以外では問題が起こるんじゃない?
471:デフォルトの名無しさん
19/06/15 23:54:10.26 ioIpgNFD0.net
デリゲートをシリアライズするっていう発想がそもそもなかったわ
472:デフォルトの名無しさん
19/06/16 00:04:36.79 IRiSsL3Z0.net
ダメか、ありがとう
473:デフォルトの名無しさん
19/06/16 00:06:06.77 j15M4OK0a.net
デリゲートのシリアライズはFullFWなら可能
.NET Remotingで通信先からRPCするために使う機能だ
.NET Coreでは.NET Remotingが廃止されたから、.NET Coreで使えないのは当然
そもそもBinaryFormatterはそれ自体が廃止された.NET Remotingの一部であり、互換性のためだけに残されてる遺物
今更新規に使っちゃダメ
474:デフォルトの名無しさん
19/06/16 00:12:52.39 G7NVDdhd0.net
>>461
うん、HttpClientのイケてないとこをラップして使いやすく(間違いを犯しにくいように)したやつ
475:デフォルトの名無しさん
19/06/16 00:22:01.61 IRiSsL3Z0.net
>>466
正直、これが出来るとリモートプロシージャコールの受け側がif/switch羅列になるのを避けられると思っていました
しかし、これはもろに時代に逆行していたんですね・・・・
廃れたと言うことは今流のやり方もあるんですか?
476:デフォルトの名無しさん
19/06/16 00:27:11.51 j15M4OK0a.net
.NET CoreでRPCしたいならRESTかgRPC使えとMS様は仰ってるね
477:デフォルトの名無しさん
19/06/16 01:01:25.28 IRiSsL3Z0.net
gRPCを使用する場合でも、サーバからグローバルIPを持たないクライアントのメソッドを呼びたい場合にデリゲートシリアライズ化は有用なように思えてしまいます
接続を切らずにStreamで独自形式の命令を送り続けることになり、クライアント側では送られてきた命令を解析するためのswitch/if文だらけのコードになってしまうからです
でもif文羅列で正しいのかな・・・・どうなんだろう・・・・
478:デフォルトの名無しさん
19/06/16 01:18:24.92 WGBivVxV0.net
プログラミング未経験からC#を勉強して1週間程の者です
疑問に思うことがふたつあるのでよかったら教えてください
ひとつめは配列の宣言について、宣言は省略せずにきちんとしたほうがいいのでしょうか?
また宣言する場合に
string[] array = new string[3];
と変数名を最初にstringで指定しているはずなのに、配列の数をstringで再び書くのはなぜでしょうか?
ふたつめは、
Console.Write("a は {0}, b は {1}", a, b);
と書くのは
Console.Write("a は " + a + ", bは " + b);
と書くより見やすいためでしょうか?
479:デフォルトの名無しさん
19/06/16 01:25:53.37 G7NVDdhd0.net
>>471
ひとつめ:varが使える場所ならvarを使った方がいい
ふたつめ:前者だと、文字列をconstやリソースファイルで保持してパラメーターだけ入れ替えられる(=使いまわしできる)。
ただ、最近はよほどパフォーマンスにシビアだったりリソースを再利用したい箇所でなければstring interpolationを使うことの方が多い(圧倒的に見やすいしバグも発生しにくいから)。
480:デフォルトの名無しさん
19/06/16 01:27:37.22 G7NVDdhd0.net
Console.Write($"a は {a}, b は {b}");
こうすると読みやすいしパラメーターの位置を間違える可能性が減る
481:デフォルトの名無しさん
19/06/16 01:52:02.63 z9IiVZ7F0.net
C# は、面倒だな
Ruby の式展開(interpolation)では、
ダブルクォート文字列内に、#{式} で書くと、式の結果を文字列に変換してくれる
puts "a は #{ a }, b は #{ b }"
482:デフォルトの名無しさん
19/06/16 02:00:09.86 yJ9OuDHU0.net
>>474
C#にもあるだろ。直ぐ上でも出てる。
$"a は {a}, b は {b}"
483:デフォルトの名無しさん
19/06/16 02:05:52.16 G7NVDdhd0.net
1つ上のレスくらい読んでくれよ…
484:デフォルトの名無しさん
19/06/16 02:12:46.91 WGBivVxV0.net
string interpolationは参考にしておいたサイトでは見たことがなく初めて知りました
確かに圧倒的に見やすいですね
varを使うことで必然的に型を指定して初期化することになるので、その辺りの宣言はしっかりしようと思います
ありがとうございました
485:デフォルトの名無しさん
19/06/16 02:40:38.10 G+0AwVAf0.net
Rubyの人 おかえりはこちらです
486:デフォルトの名無しさん
19/06/16 02:49:49.58 U3MUj56p0.net
>>467
いいね!使ってみる。
487:デフォルトの名無しさん
19/06/16 05:00:17.20 wxDeKJDL0.net
interpolation 略して inpo
488:デフォルトの名無しさん
19/06/16 08:33:51.55 59NNwAx00.net
>>470
WebSocketとかSignalRとか使ったらサーバーからの通知対してにライブラリが適切なメソッドを呼んでくれるのでは
489:デフォルトの名無しさん
19/06/16 08:38:40.27 xspDtD2o0.net
>>458
httpClientをusingする方が間違いでは?
接続先ごとに作るもんだと思ってた。ヘッダとか共通にしたい粒度と同じ粒度で。
490:デフォルトの名無しさん
19/06/16 09:55:00.36 X9An2SCta.net
>>482
だから…
usingするのは間違いだがじゃあどうやって使いまわすかでバグりやすい
使いまわすのをどこかに任せて使う側は自由に使えるようにしてないと
本当に使いにくい
491:デフォルトの名無しさん
19/06/16 12:12:22.08 NdAq/MEw0.net
>>480
+1
492:デフォルトの名無しさん
19/06/16 12:20:15.94 xspDtD2o0.net
>>483
そう?APIアクセスにはこのHttpClient、リソースにはこのHttpClientって別けてると結構便利だけど。
デフォルトヘッダーつけたり、デフォルトのタイムアウトとかをそれ用に設定したりして。
URIなんかで適当に使い回されるのはちょっと使いづらくなるな。
493:デフォルトの名無しさん
19/06/16 12:29:55.12 +FeN72guM.net
staticなインスタンスを持つという行為がオブジェクト指向にそぐわないのだろう
494:デフォルトの名無しさん
19/06/16 12:35:21.44 WIm6t9KAd.net
じゃあDIによるシングルトンで
495:デフォルトの名無しさん
19/06/16 16:29:01.69 xspDtD2o0.net
>>486
それも変な話だけどなー。
staticなインスタンスなわけではなくて、環境に対してインスタンスがあるんじゃないのかな。
使い回すって、もしかして何もかものHttpClientを1つのインスタンスや、いくつか作って適当に余ってるインスタンスで賄ってるの?
少なくとも1ホスト1HttpClientで扱わないとよろしくなかったはず。
そういう意味では、完全にstaticな訳ではなくて、多分MVCならコントローラごとに、宛先ホストやデフォルトヘッダー別のHttpClientを持てば充分なので、特に長寿命になる訳でも、広範囲に露出する訳でも無いんじゃないかな。
毎回作るようなusingで囲む事をするのはよろしくないだけであって、適宜作ってDisposeする分には問題ないっしょ。
だからデストラクタでDisposeできるようにIDisposableなんじゃ?
496:デフォルトの名無しさん
19/06/16 17:56:30.01 yX0oMZwqa.net
Disposeは要らんかった
惑わされる
497:デフォルトの名無しさん
19/06/16 17:59:45.19 IRiSsL3Z0.net
デリゲートのシリアライズについて色々試したところ、WindowsやUbuntuのCore.2.2ではデリゲートのシリアライズは可能でした
まさかMac版だけ違うとは・・・・
>>481
WebSocketについては全くわからないのですみませんが、Signalrは良さそうですね
498:デフォルトの名無しさん
19/06/16 18:56:40.91 ikomc5kEr.net
>>488
絶対に一つのホストに対して非同期で複数接続しない?
変だろそれは?
普通に非同期処理やマルチスレッドなどを多用したところで複数接続することがあるだろ
ちゃんと管理しないとおかしなことになる
499:デフォルトの名無しさん
19/06/16 19:03:24.48 xspDtD2o0.net
>>491
xxxxAsyncはだいたいスレッドセーフだよ。
500:デフォルトの名無しさん
19/06/16 19:13:58.14 6Ugz9fj30.net
httpClientの設計がまずいのは周知の事実だろ
オプションとしてならいいけどさ
まともな通信用のクラスをなぜ作れんのだ
501:デフォルトの名無しさん
19/06/16 19:20:45.53 xspDtD2o0.net
んー、なんか俺の返事がズレてる気がする。
1つのホストの1つ用途に対して使い回すのは良いんだけど、
別のホストや別の用途に対して使い回すのは良くないんじゃないかな、って話で、
1つのホストの1つの用途に対して複数のHttpClientを使うのも、悪かないんじゃないの?限度があるけど。
そもそもHttpClientを毎回作ってはいけない理由が、インスタンスを立てるとソケットをopenしに行って、CloseしてもTIME_WAIT以降を待ってソケットがcloseするから、パフォーマンス的にもまずいしソケットが枯渇するって問題なんだし、
捨てないとDNSの変更が反映されない問題も避けれないんだから、LBとか考えると同一ホスト対象でもずっと使い回すより、処理粒度に合わせてインスタンス持つようにした方がいいんでないの、って要旨だった。
502:デフォルトの名無しさん
19/06/16 19:22:37.45 xspDtD2o0.net
>>493
結構まともな設計だと思うけどなぁ。
MSDN読んでない奴が安易にusingしたり、安易にずっと使い回すからいかんのでは?
そんなどうhttp接続を使うかみたいなビジネスロジック層の問題をフレームワークに求めるのは酷じゃ無いかな。
あくまでWindowsのソケットの実装としてはね。
503:デフォルトの名無しさん
19/06/16 19:24:29.05 ikomc5kEr.net
その管理を誰がやるのか?
低級プログラマがそれを考えて使えるのか?
使えないなら管理をどこかでちゃんとやる仕組みを作れ
504:デフォルトの名無しさん
19/06/16 19:27:19.28 ikomc5kEr.net
そもそもの仕組みは簡素なつもりなんだろうけど
結局考えてコーディングしなければバグってしまってアプリを使ってる人にはその理由がわからない
505:デフォルトの名無しさん
19/06/16 19:36:40.16 G7NVDdhd0.net
>>496
だからHttpClientFactoryなんだろ何回も言わせんな…
506:デフォルトの名無しさん
19/06/16 19:51:24.02 ikomc5kEr.net
.NET Frameworkは?
507:デフォルトの名無しさん
19/06/16 19:58:59.39 xspDtD2o0.net
>>496
そんな字が書けなくても小説が書けるノートを寄越せみたいな事言って何になるの?
508:デフォルトの名無しさん
19/06/16 20:01:51.47 ikomc5kEr.net
.net core 3.0でWPFサポートはいるけど
それまではWPFなどで作る場合.NET Frameworkだろ
ずっと放置しといて.net coreで入ったからいいなんて思うなよ
509:デフォルトの名無しさん
19/06/16 20:02:01.46 xspDtD2o0.net
>>497
簡単な事だと思うんだけど、考えてコーディングすれば良いだけでは?
考えずにコーディングする方がどうかしてるんじゃないの?
くもんのドリルとか、早指しの将棋じゃねえんだから。
510:デフォルトの名無しさん
19/06/16 20:24:08.68 +fU13JTma.net
>>490
へー
もちろん、ラムダ式で変数キャプチャーやメソッドやプロパティーにアクセスしたり、
そもそもデリゲートがメソッドを参照してる場合はNGだよね?
511:デフォルトの名無しさん
19/06/16 21:07:08.31 6Ugz9fj30.net
まず通信のためのインスタンスを保持しておく必要があるって点が意味不明
なんで一通信毎に一インスタンスを使い捨てさせてくれないんだ?
512:デフォルトの名無しさん
19/06/16 21:11:11.53 2a6zi2hA0.net
ないなら作ればとしか思わんけど
513:デフォルトの名無しさん
19/06/16 21:15:37.29 0NEzhhkla.net
Keep Aliveの為に必要なんですよ
514:デフォルトの名無しさん
19/06/16 21:27:28.53 2mY5Onwd0.net
HttpClientに関連して、NetworkCredentialのダイジェスト認証バグもどうにかしろよって感じです。
GETにクエリパラメータ付いてると認証失敗したり、ところどころRFCに従ってなかったりとか。
散々ググって、どうやら解決方法が自前実装しかないと辿り着くまでに時間かかった。。
今どきダイジェスト認証って感じで放置されてるのかもですが、
Webサーバ積んでるIoT機器なんかでは結構使われてるので、ちょっとしたツール作るのもダルくなります
515:デフォルトの名無しさん
19/06/16 21:35:16.94 WJsnIQ8z0.net
半端なライブラリはこれだから
Javaみたいに産廃レベルだと「じゃあ俺が最強のHttpClientを作ってやる」ってのが出てくるのにね
516:デフォルトの名無しさん
19/06/16 21:41:01.31 +fU13JTma.net
web系は仕事で触ったことないからまったく分かんないやw
どっかにいいチュートリアルとかある?
でも話聞いてるとweb系って今でもバッドノウハウの塊みたいでストレス度高そうだなw
517:デフォルトの名無しさん
19/06/16 22:05:12.05 6Ugz9fj30.net
>>507
そんなんあるんかよ…
つまりヘッダを自分で組み立てるしかないってこと?
518:デフォルトの名無しさん
19/06/16 22:20:27.61 gEahNK3la.net
結局MSはWPFをどうしていくんだろうか
519:デフォルトの名無しさん
19/06/16 22:25:47.52 wD0NHooaM.net
C
520:#プログラミング初心者です Form実行時の各イベントの発生順序について質問させてください Form実行時にどういう順番でどういうプログラムが処理されていくのかよくわかりません Formを実行したときFormのコンストラクタが設定されイニシャライズ内の各コントロールが配置されるという認識で合ってますか? あと実行時に一番最初に処理されるのはProgram.csですか? コンストラクタとイニシャライズの意味がよくわかっていないかもしれません よろしくお願いします
521:デフォルトの名無しさん
19/06/16 22:33:03.04 gLoRAJ8t0.net
>>512
もう十年やってる俺の認識と一致してんじゃん
後は強く生㌔
522:デフォルトの名無しさん
19/06/16 22:47:40.58 Qo3kD6WQ0.net
>>512
コンストラクタはFormもそうだけどクラスのインスタンス生成時に最初に呼び出される
InitializeComponent()は単なるVisualStudioが用意しているデザイナのためのメソッド
コンストラクタ内などで自分で用意してもいい
一番最初に処理されるのはProgram.csでなくその中に書いてあるclass ProgramのMain(エントリポイント)
とりあえずこの辺から読んでみたら。特に理解しなくてもコードは書けるけども
[雑記] エントリーポイント URLリンク(ufcpp.net)
[基礎] C#のプログラムの基本構造 URLリンク(ufcpp.net)
523:デフォルトの名無しさん
19/06/16 22:58:44.87 wD0NHooaM.net
>>514
親切にURLまで貼っていただきありがとうございます
とてもわかりやすかったです
助かりました
524:デフォルトの名無しさん
19/06/17 11:09:57.31 aKGiWlYO0.net
なんかメモリーがどんどん減ってくんですが。
525:デフォルトの名無しさん
19/06/17 11:41:26.98 KqnEIU5BM.net
それは痴呆だよ
526:デフォルトの名無しさん
19/06/17 11:45:08.07 d6mw/rQbp.net
観測した途端にメモリーが足りなくなる不思議
527:デフォルトの名無しさん
19/06/17 12:01:39.02 KqnEIU5BM.net
記憶がだんだん遠くなる
528:デフォルトの名無しさん
19/06/17 13:56:49.50 JXiMVUT0M.net
観測しなければいいじゃん
529:デフォルトの名無しさん
19/06/17 14:00:02.92 i1zZ44t70.net
足りないのに無くならない不思議
530:デフォルトの名無しさん
19/06/17 14:07:34.68 fWv+7syLd.net
WPFデビューしようと思って色々調べてるんだけど情報少なすぎない?
Prismが便利らしいけど公式サンプルがちょこっとあるだけだし全然使えなさそう
531:デフォルトの名無しさん
19/06/17 14:20:39.66 a0UOupWUd.net
それはWPFじゃなくてPrismの問題だろw
532:デフォルトの名無しさん
19/06/17 17:13:19.75 d6mw/rQbp.net
WPFはFormと同じ名前のまんまのメソッドやプロパティ使えたら不人気にならなかったはず。
微妙に違ったりするから混乱するんだよな。
533:デフォルトの名無しさん
19/06/17 23:14:24.82 js38FdP50.net
class test
{
byte i = new byte();
public void calc() {
...
}
...
}
こんな感じのnewの使い方をみたのですが、こういうのc#だけですよね?
どこかに解説はありませんか?
534:デフォルトの名無しさん
19/06/17 23:24:08.75 qS39OOn20.net
>>525
書き方として有効でも普通はそんなことやらない
URLリンク(docs.microsoft.com)
>new 演算子は値型のパラメーターなしのコンストラクターの呼び出しにも使用します
535:デフォルトの名無しさん
19/06/17 23:54:16.01 dLLbEhJJM.net
構造体の引数無しのnewはdefaultと同じ
newだとユーザー定義の初期化処理が走っているように見えてしまうから、最近だとdefaultのほうが好まれる傾向がある
フィールドの場合は明示的に初期化しなくても勝手に既定値で初期化されるから不要なんだけど
536:デフォルトの名無しさん
19/06/18 05:55:07.37 LmNIdt8j0.net
C# でDB勉強中なんですが、以下のケースでは、更新/挿入/削除するべきレコードの判定はどうすればよいでしょうか?
元テーブル
--------------------------
id | item_name | item_location |
--------------------------
1 item1 1
2 item2 1
3 item3 2
--------------------------
これをDataGridViewに読み込んで、以下のように修正するとします。
--------------------------
id | item_name | item_location |
--------------------------
1 item3 2 ← item1がitem3に変更
2 item1 3 ← item2がitem1に変更されてlocationも変更
3 item4 1 ← item4 追加
4 item5 1 ← item5 追加
-------------------------- ※item2は削除
この処理の場合、insert・update・deleteするべきレコードの判定はどうやって行ったらよいでしょうか?
537:デフォルトの名無しさん
19/06/18 06:10:50.02 +H1sBCCVM.net
キー項目は何?無ければ作る
538:デフォルトの名無しさん
19/06/18 06:12:13.77 d6M+0/F+0.net
洗い替えがいいんじゃない?
元テーブルを裏で保持してて対象レコードを全部削除する
修正後を全部INSERT
539:デフォルトの名無しさん
19/06/18 06:13:19.34 3nOE2mBA0.net
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
スレリンク(tech板)
142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
540:デフォルトの名無しさん
19/06/18 07:41:47.49 HGOf7fkO0.net
WPFが流行らないまま時代はスマホアプリに
541:デフォルトの名無しさん
19/06/18 10:24:27.14 MvE0vXDO0.net
>>528
件数にもよるけど全体より修正が少なければ、最初にトラン作っておいて、編集がかかるたびにupdate/insert/delete。
確定時にコミット。
そうでなければ>>530
542:528
19/06/18 12:27:38.88 LmNIdt8j0.net
>>530 >>533
神様!ありがとうございます!!
543:デフォルトの名無しさん
19/06/18 14:34:26.70 H7tttB9U0.net
C# でセレニウム(Chrome)を操作しています。
この時に
ページを復元しますか?
Chromeは正しく終了しまsんでした
障害レポートと使用統計データ・・・
というメッセージが出て邪魔です。
これを出ない様に出来ないでしょうか?
544:デフォルトの名無しさん
19/06/18 15:07:21.28 6gzOVRYwd.net
>>535
再現可能な必要最小限のプロジェクトを共有して
545:デフォルトの名無しさん
19/06/18 16:06:35.49 H7tttB9U0.net
>>536
再現しないですかね?
普通にC#+ChromeDriverです。
546:デフォルトの名無しさん
19/06/18 16:35:19.94 6gzOVRYwd.net
しないよ
547:デフォルトの名無しさん
19/06/18 18:08:04.60 WG6tLdsV0.net
ずーっとセレニウムと格闘してんねw
548:デフォルトの名無しさん
19/06/18 18:35:30.59 lLW7uP7d0.net
>>537
ChromeDriverのことはChromeDriverのForumで聞けよ
URLリンク(groups.google.com)
549:デフォルトの名無しさん
19/06/18 19:51:09.93 9LNNY8IFM.net
C#でDB操作時かつトランザクション使用時のコミットやロールバックを書く場所と、例外発生時の処理の止め方について質問させてください
DB内のデータをC#のDataGridViewにバインドし編集したのち登録や削除を行う課題をしているのですが、
コミットやロールバックを書く場所や、例外発生時に処理を止める方法がよくわかりません
今までメソッドの処理を中断するときはreturnを使えば良いと思っていたのですが、私に課題を出していただいてる方にそのやり方ではないと言われました
どうやらthrowを使うパターンもあるらしいのですが調べてもよくわかりません
わかりにくい文章で申し訳ありませんがヒントだけでもいただけたら嬉しいです
どうかよろしくお願いします
550:デフォルトの名無しさん
19/06/18 20:01:43.07 z/sE9uve0.net
>>541
throwはこれ。例外を投げて場合によってはメッセージを入れるなどして呼び出し元でcatchさせたりする
URLリンク(docs.microsoft.com)
551:デフォルトの名無しさん
19/06/18 23:02:13.66 PmBejiWq0.net
Ruby で、Selenium WebDriver を使えば?
Chrome Driver は、ちょくちょく変わるよ。
それに、Chrome も、知らない間に、バージョンアップされてる!
自分のChromeが、バージョンアップされた時に、
新しいChrome Driverにしていないと、バージョンの不一致により、エラーで落ちる!
自分のChromeのバージョンを見て、もしバージョンアップされていれば、
そのバージョンに合った、Chrome Driverに変えてください!
552:543
19/06/18 23:13:17.82 PmBejiWq0.net
それと、5ch みたいに、空のHTML を送ってきてから、
Ajax で内容を取得するようなサイトは、
30秒ぐらい待たないと、内容が取得できないこともある
それと、5chはバグが多いから、ある日、突然動かなくなる。
IE では、フリーズするし
サイトのバグで動かなくなることも多いから、
example.com とか、色々なサイトで、使ってみる事!
553:デフォルトの名無しさん
19/06/18 23:17:03.81 H7tttB9U0.net
>>543 >>544
Chromeがマスト条件なんですよね。。。
554:デフォルトの名無しさん
19/06/19 00:25:52.80 SHnWP/2E0.net
>>545
そいつは自分の言いたいことを言うだけだから、会話しようとしても無駄だぞ
555:デフォルトの名無しさん
19/06/19 00:43:45.23 cBT9gst5a.net
chromeコンテナ使えよ
556:デフォルトの名無しさん
19/06/21 10:51:14.98 +Ex9QBom0.net
DataGridViewの列にDataGridViewImageColumnを設けています。
ネットからダウンロードしたエロ画像をローカルに保存して
DataGridViewのその列に1.jpg~5.jpを一覧表示します。
DataGRidView.DataSource = ero_DataTable;
参照している画像
c:\dat\downloaded_files\1.jpg ~ 2.jpg
再び別の画像をダウンロードし
DataGridViewにレンダリングする為に、まず最初にローカル画像を削除しようとすると
「別のプロセスで使用されているため、プロセスはファイル '1.jpg' にアクセスできません。」
というエラーメッセージが表示されてしまいます。
ローカルの画像を削除した後で、新しい画像をネットからダウンロードしてローカルに保存し
1~***.jpgとして保存し、DataGridViewから参照したいのですが、何か良い方法はないでしょうか?
557:デフォルトの名無しさん
19/06/21 10:52:25.51 LVq54M8sp.net
とりあえずcloseだな。
558:デフォルトの名無しさん
19/06/21 11:05:23.63 +Ex9QBom0.net
>>549
Closeはインテリセンスにいずれも出ませんでした。。。
困ってます。教えてくださいm(_)m
559:デフォルトの名無しさん
19/06/21 11:11:30.32 LVq54M8sp.net
じゃあ、usingで括る
560:デフォルトの名無しさん
19/06/21 11:23:43.41 kqcCd+WN0.net
DataTableの画像列をtypeof(Image)とかtypeof(Bitmap)でやってるなら、
代わりにtypeof(byte[])にして、
行を追加するときにBitmapオブジェクトを追加するんじゃなくて
File.ReadAllBytesしたバイト配列を追加するようにする
561:デフォルトの名無しさん
19/06/21 11:46:36.87 +Ex9QBom0.net
ありがとうございます。
試してみます!
因みに現在は、こういう感じのコードでDataGridViewには画像を表示しています。
int i_data_count = 5;
for (int i = 1; i <= i_data_count; i++)
{
dgv_erogazou["ERO_IMAGE", i - 1].Value = new Bitmap("C\data\" + i.ToString() + ".jpg");
}
562:デフォルトの名無しさん
19/06/21 12:56:06.44 LVq54M8sp.net
C#あるあるだな。
いつファイルを解放して良いのか分からないからいつまでもファイルを開いたままなんじゃね?
関数が中でなんとかすれば良いのに融通がきかなよなw
563:デフォルトの名無しさん
19/06/21 13:31:59.07 +Ex9QBom0.net
>>554
はい。
しゃーないので、アプリ起動時にすべてのローカルファイルを削除する処理を入れることにしました。
再取得時には、 ファイル名をプラス1インクリメントしてローカルに保存しまくります。
564:デフォルトの名無しさん
19/06/21 14:05:44.74 oHxDGzCo0.net
いや、不要になった時点でファイルをちゃんと閉じればええやん
565:デフォルトの名無しさん
19/06/21 16:12:50.06 g5FK/rwid.net
>>554
横着せずに不要になったら自分で閉じろよ
566:デフォルトの名無しさん
19/06/21 21:14:35.05 41J0QDC70.net
>>553
DataSourceにするのなら>>552が適切な回答だけど補足しておくとImageクラス(下位クラスのBitmapも)の面倒な仕様のせい
表示中の画像ファイルが削除できない問題の解決法
URLリンク(dobon.net)
他の解決法としてはインスタンスの内容をコピーして元の(ファイルをつかんでいる方の)インスタンスをDisposeしたりImageConverter経由で画像を取得したりする
567:デフォルトの名無しさん
19/06/21 21:53:59.45 LVq54M8sp.net
ファイル操作とbitmap操作を別々にやればいいんだろ?
分かってるよめんどくさいんだよ。
568:デフォルトの名無しさん
19/06/21 21:55:05.08 LVq54M8sp.net
むしろ取り出したら閉じてくれよ糞仕様だよな。
569:デフォルトの名無しさん
19/06/21 22:09:21.22 +Ex9QBom0.net
>>558
DataGridViewの中のImageColumnだからそれだとできないのでは?
570:デフォルトの名無しさん
19/06/21 23:28:05.29 JQSabSWL0.net
その後使うのに勝手に閉じるほうがクソ仕様じゃん
用途理解せず間違った使い方して仕様に文句言うってw
571:デフォルトの名無しさん
19/06/21 23:32:45.71 fAAfMpwpa.net
>>560
お前さんの思うようにならないこの世の中は、糞仕様の最たる物だろうね
572:デフォルトの名無しさん
19/06/21 23:50:02.71 r7op1kHj0.net
使うのは画像データで、読み取ったファイルは要らないから閉じてよ。
って話だろ?
573:デフォルトの名無しさん
19/06/22 00:10:22.86 0zozUz1q0.net
>>561
Bitmapを入れるだけだからできないってのはありえない
例えばImageConverter経由で直に入れる場合
dgv_erogazou["ERO_IMAGE", i - 1].Value = (Bitmap)new ImageConverter().ConvertFrom((byte[])System.IO.File.ReadAllBytes("C:\data\" + i.ToString() + ".jpg"));
574:デフォルトの名無しさん
19/06/22 00:22:05.59 RCotbW9/0.net
>>565
詳しいですね。試してみます。
575:デフォルトの名無しさん
19/06/22 09:51:37.11 sRxgpvPlM.net
>>564
画像データ変更してSaveするかも知れんだろ
SaveとかしないんならFileStream作ってコンストラクタに渡せばいいだけ
もちろんFileStreamは自分で閉じろよ
576:デフォルトの名無しさん
19/06/22 20:13:32.14 RCotbW9/0.net
>>565
ありがとうございます!!!出来ました!!
すばらしい!!そういう方法があったのですね!!!
しっかり画像の削除できました!!!
577:デフォルトの名無しさん
19/06/22 20:22:58.28 kyoGZvmZ0.net
えっちな奴め
578:デフォルトの名無しさん
19/06/22 20:25:30.34 oSCB+4xW0.net
えっち駆動開発の何が悪いんですか
579:デフォルトの名無しさん
19/06/22 20:36:08.
580:91 ID:Ox8nDO+0M.net
581:デフォルトの名無しさん
19/06/22 21:32:06.83 q0mPajE40.net
我がエロは永久に不滅です
582:デフォルトの名無しさん
19/06/22 21:36:35.73 RCotbW9/0.net
よしこれでエロ画像クローラーできる
583:デフォルトの名無しさん
19/06/23 15:09:33.41 4oGZ8zjy0.net
WEBのエロ画像収集のためのエロボット作るのにC#は向いてますか?
向いていないなら何言語や何のフレームワークがオススメですか?
584:デフォルトの名無しさん
19/06/23 15:41:05.03 4589uE1UM.net
>>574
エロは偉大だからな。
当然C#で可能。
585:デフォルトの名無しさん
19/06/23 19:50:32.93 XYuZEt+Z0.net
>>574
AngleSharpっていう便利なライブラリを使うと色々と捗るよ
586:デフォルトの名無しさん
19/06/24 07:04:12.89 INU2Nep40.net
>>576
こんなエロボットフレームワークがあるんですね
もう爆発寸前なので助かります
さー調査と設計だ
587:デフォルトの名無しさん
19/06/25 00:07:05.16 UHHkgEL+0.net
Guid構造体はなぜnullと比較可能なんでしょうか?
588:デフォルトの名無しさん
19/06/25 01:31:20.19 KoYuAQ6u0.net
>>578
nullの比較できるというのは気のせいだね
589:デフォルトの名無しさん
19/06/25 03:29:25.92 4JR3abKur.net
どの値型でもnullと比較する式は書けるが
Nullable以外だと結果は常に非null、じゃなかったっけ
590:デフォルトの名無しさん
19/06/25 10:31:07.49 6gRatuk7p.net
構造体なんて無いから。
常に実体がやり取りされているんだからnullの状態なんか無いよ。
591:デフォルトの名無しさん
19/06/25 11:54:15.85 M3mY4uqKd.net
構造体はあるやろ
592:デフォルトの名無しさん
19/06/25 11:56:21.92 S47SJWtZM.net
ガイジに話しかけるな
593:デフォルトの名無しさん
19/06/25 12:24:38.17 hYWx9HjQ0.net
なつくぞ
594:デフォルトの名無しさん
19/06/25 12:26:46.14 fHxE1RgIa.net
WPFちょっとやってみたけどクソめんどくさく感じるんだけど慣れるとformアプリではもうやらないってなるもん?
595:デフォルトの名無しさん
19/06/25 12:59:02.90 dhEdiy5y0.net
そこまでではないけどFormsでListViewにバインディングできないことにうんざりするぐらいには
596:デフォルトの名無しさん
19/06/25 13:05:18.68 kPWnGZLKM.net
>>585
やればやるほど新たに面倒臭い概念が出てきて余計に面倒臭くなるよ
コントロールテンプレート、依存関係プロパティ、ルーティングコマンド、ルーティングイベント、デコレータ、エフェクト、VSM、色空間、Drawing系API、等々、WPFの魔境は果てしなく続く
現代における典型的なセカンドシステム症候群の事例としては貴重だから、どんな概念があるかを一通り眺めてみる分には損はない
一つ一つのアイデア自体は非常にスマートなもので、なるほどと感心するようなものが多く、フロントエンド設計の勉強にもなるしね
597:デフォルトの名無しさん
19/06/25 19:00:07.49 jHEFOU5uM.net
>>587
ちょっと書きづらいよね
あとから見る時も見辛いし
プリプロセッサでも作ろうかな
598:デフォルトの名無しさん
19/06/25 19:02:33.37 vtQg0q3N0.net
.NET Standardの中で.NET Coreから呼び出されたかどうか判断できます?
Environment.GetCommandLineArgs().First()の拡張子で判断くらいしか思いつかず
明確な方法があれば助かります
599:デフォルトの名無しさん
19/06/25 19:26:07.17 zsZioWuM0.net
>>589
なんでそんなことがしたいの?
600:デフォルトの名無しさん
19/06/25 19:46:04.41 vtQg0q3N0.net
>>590
HttpWebRequestの実装が恐ろしいので何かしら対策しようとしています
601:デフォルトの名無しさん
19/06/25 20:18:45.64 H0q3OQVA0.net
URLリンク(docs.microsoft.com)
これでどう?
602:デフォルトの名無しさん
19/06/25 20:28:52.74 vtQg0q3N0.net
>>592
ありがとうございます
Assemblyを辿ってそれっぽいのも見つかったのですが、こちらの方が簡単なので
参考にさせてもらいます
603:デフォルトの名無しさん
19/06/26 04:29:08.46 eFojmlDc0.net
>>585
慣れても仕事とかだと普通にwinform使う
なんだかんだとwpfはめんどくさく
学習コスト高いから
習熟した開発者が少なくて安易に使えない
604:デフォルトの名無しさん
19/06/26 08:07:26.56 u3TFQ+4na.net
>>587
>>594
ありがとう
開発手法としては理にかなってて割と好きではあるんだけども勉強してみて学習コストが高いと言われるているのはよくわかった。。
もう少し書籍なり充実してて将来性も有望なら頑張れそうだけど早くも心折れかけてる
605:デフォルトの名無しさん
19/06/26 08:16:17.91 PhRSMRl5d.net
仕事だとテストのしやすさが重要なファクターだからWPF一択だな
テストしなくていいよってとこならWinforms
606:デフォルトの名無しさん
19/06/26 09:16:39.11 xtHmKE3cM.net
WPFとMVVMを採用したからといってビューをテストしなくてよくなるわけじゃない
それWinFormsじゃ難しいッスwwサーセンww
が通用しなくなってビューの仕様が膨張しがちな分だけ、まず例外なくテスト工数は増えるよ
Passive Viewのような設計パターンを学べばWinFormsでもビューロジックの単体テストは可能
607:デフォルトの名無しさん
19/06/26 09:26:06.98 QHgmuWluM.net
ズレた会話を補正できるフレームワークをください
608:デフォルトの名無しさん
19/06/26 09:26:37.90 PhRSMRl5d.net
「テストのしやすさ」な
609:デフォルトの名無しさん
19/06/26 09:27:18.92 PhRSMRl5d.net
別にWinformsはテスト不可って言ってるわけじゃない
610:デフォルトの名無しさん
19/06/26 09:48:33.88 HSzkoapr0.net
.mobi もしくは .azw .azw3 のファイルを解凍?するライブラリってありませんか?
611:デフォルトの名無しさん
19/06/26 10:08:27.28 RqqyhRb10.net
nugetで検索してみればmobiはいくつか見つかるな
612:デフォルトの名無しさん
19/06/26 18:48:22.15 mLhKuAUca.net
言うほどお前らテスト書いておらんやろ
613:デフォルトの名無しさん
19/06/26 19:20:20.18 PhRSMRl5d.net
書いとるよー
614:デフォルトの名無しさん
19/06/26 19:22:39.39 UJGyHIPed.net
ビューのテストって何をテストするの?テキストがはみ出さないかとか?
615:デフォルトの名無しさん
19/06/26 19:25:49.92 sx0u8G1v0.net
asp.netのSQLServerアクセス部分でユーザーのアクセスが重なるとどうもDBアクセスに失敗するみたいなのですが、DBアクセス処理をstaticメソッドで書くのは悪手だったりするでしょうか?
616:デフォルトの名無しさん
19/06/26 19:31:19.63 fmXddalaF.net
lock と retry 汁
617:デフォルトの名無しさん
19/06/26 19:40:03.93 PhRSMRl5d.net
>>606
コード晒してみ
618:デフォルトの名無しさん
19/06/26 19:46:46.69 sx0u8G1v0.net
>>608
会社かつ前任者のコードなので晒すのは難しいのですが、ASP.NETのようなwebアプリでstaticメソッドとか大丈夫かなと思いつつもダメな理由は説明できず
メモリ領域共有するんじゃなかったかな程度の認識です
619:デフォルトの名無しさん
19/06/26 19:52:43.34 sx0u8G1v0.net
ASPの者ですが、問題のメソッドが抱えるSQLはSELECTしかないのでデッドロックは無いと思います
呼び出し先のターゲットでエラーをキャッチしました
程度のログしか残って無いので、現象再現が難しく困っております
620:デフォルトの名無しさん
19/06/26 19:52:48.15 bHDlLtN30.net
アメリカ製品を著作権で保護する義務は無い。プロテクトをはずしたコピー
の流布を何人たりとも妨げてはならない。
福島原発爆発させたアメリカ人は、日本人に慰謝料を払え。
日本人は大切な農地を失った。一兆円の一億倍の金額を日本人に払う義務がある。
621:デフォルトの名無しさん
19/06/26 19:53:56.64 bHDlLtN30.net
頭がいい日本人は、プロテクトをはずし、流布できる。
アメリカ人に金を払う義務も義理も無い。
622:デフォルトの名無しさん
19/06/26 19:58:15.93 Yg3jjeyya.net
コピペマン参上!!!まで読んだ
623:デフォルトの名無しさん
19/06/26 19:58:53.91 PhRSMRl5d.net
>>609
どうやってDBにクエリ投げてるかも見ずに判断はできないよ
624:デフォルトの名無しさん
19/06/26 20:03:19.28 U8omILn4p.net
>>606
コネクションのクローズしとる?
625:デフォルトの名無しさん
19/06/26 20:04:01.32 Ah/Hy021a.net
Connectionインスタンスも共有してるというオチだろ
626:デフォルトの名無しさん
19/06/26 23:23:25.13 PXDML4haa.net
コネクション自体がstaticとか、コネクションがSessionに突っ込まれてるとかありそう
Librahack事件みたいなクソソースになってるんじゃなかろうか
627:デフォルトの名無しさん
19/06/27 07:00:32.10 nNrp6UFx0.net
エラーメッセージを取得して、それで検索すれば?
DB の実行計画を見るとか
一方が読み取りでも、他方が同時に書き込みしていれば、その間ロックされる
特定の時間帯に、時間の掛かるバッチ処理で、
長時間に渡って、表を更新しているかも知れないし
628:デフォルトの名無しさん
19/06/27 07:07:10.17 C3eSzJbL0.net
>>618
楽観的排他制御なら読み込みは出来るかなと思ってましたが色々確認しないとダメなのですね
629:デフォルトの名無しさん
19/06/27 08:45:24.16 v58kjs08M.net
レコードロックとテーブルロックを機能ごと指定させられたことあるけど
落ちないだけで本当に適切な仕様は自分で考えてねって設計書に書いてあった
フィールドに全体の件数と合計から算出する要素があって明らかに徒労なのに頑張った
630:デフォルトの名無しさん
19/06/27 08:49:39.03 S3Pv/OFX0.net
>>602
無かったのでKindleUnpackのPythonソースを読みながら自分でコード書いた。
画像データの取り出しだけなら簡単だったよ。
631:デフォルトの名無しさん
19/06/27 11:02:50.04 te5kXF0fF.net
>問題のメソッドが抱えるSQLはSELECTしかないのでデッドロックは無いと思います
史上稀に観るアホ
触っちゃいけないレヴェル
632:デフォルトの名無しさん
19/06/27 12:10:15.36 8RLu6j/60.net
string str_url_test = "URLリンク(www.rarara.co.jp)
//正規表現を定義
string anchor = "URLリンク(www.rarara.co.jp)(?<code>.*?)/.*";
code の後の abcdefg
を抽出する正規表現を定義しました。
一応動いていますが、この正規表現の定義はスマートでない気がします。
Regex re = new Regex(anchor, RegexOptions.IgnoreCase | RegexOptions.Singleline);
for (Match m = re.Match(str_url_test); m.Success; m = m.NextMatch())
{
string str_test = m.Groups["asin"].Value;
Console.WriteLine(str_test);
}
スマートな定義を教えてください。
633:デフォルトの名無しさん
19/06/27 12:32:07.51 cRVxwV8ZM.net
まずスマートの定義をくれ
634:デフォルトの名無しさん
19/06/27 14:09:30.43 Q2Oxmr0fM.net
>>624
あーウゼー
635:デフォルトの名無しさん
19/06/27 14:20:45.08 nNrp6UFx0.net
Ruby で作った
[^/]+ は、/ 以外の文字が、1つ以上続く。
正規表現のスレで、聞いた方がよいかも
# 正規表現を、%r!~! で囲むことで、/ を、\/ と、自動的にエスケープする。
re = %r!^URLリンク(www.rarara.co.jp)([^/]+)!
str = "URLリンク(www.rarara.co.jp)
md = str.match( re )
puts md[ 1 ] #=> abcdefg。md[ 1 ] は、capture 部分
636:デフォルトの名無しさん
19/06/27 14:27:06.21 2+uL3o0i0.net
¥エスケープは@で
初心者を困らせる輩はrubyスレに消えて
637:デフォルトの名無しさん
19/06/27 14:45:42.13 A3w8sjPHF.net
仕様を小出しにするなカス
死ね
638:デフォルトの名無しさん
19/06/27 14:54:33.49 8RLu6j/60.net
>>626
ありがとうございます。
正規表現がシンプルでいいですね!
私も正規表現を極めたいものです。
639:デフォルトの名無しさん
19/06/27 14:57:15.00 8RLu6j/60.net
正規表現は苦手なんだよな。
いろいろなパターンで試して勉強するしかないかな。
効率的に勉強する方法はある?
640:626
19/06/27 15:07:03.52 nNrp6UFx0.net
Ruby, JavaScript あたりの正規表現のページを読めば、十分じゃないの?
先読み・後読みは、難しいから無視する。
その代わりに、[^a]+ みたいな、a以外の文字が、1つ以上続くなどの表現を使って避ける
641:デフォルトの名無しさん
19/06/27 22:42:48.18 EN7VAxwO0.net
DataGridViewなんですが、Win10で描画がものすごく遅いのは何とかなりませんか?
もちろんオンボのおんぼろノートなのが悪いのですが
Win10上のゲストXPのほうが断然早いのは納得できません
642:デフォルトの名無しさん
19/06/27 23:12:47.92 oiNM/LxL0.net
>>632
DoubleBufferedプロパティをtrueにする
643:デフォルトの名無しさん
19/06/28 00:28:54.58 DioESCVe0.net
C# +Selenium で headless でブラウザを開くと遅くないですか???
644:デフォルトの名無しさん
19/06/28 06:58:11.47 D2ExxOf/0.net
Windows10, Ruby, Selenium WebDriver で、どのブラウザでも、
最初の起動には、10秒ぐらい掛かる。
2回目以降は、5秒ぐらい
645:デフォルトの名無しさん
19/06/28 07:27:31.58 +Ee2NvDr0.net
DataGridView触る仕事とかしたくねーなー
近々消される運命のものを覚える程のキャパは無いぜ
646:デフォルトの名無しさん
19/06/28 08:12:54.55 l8i4Vkx00.net
>>636
だったら何ならいいんだよって話
今更どうこうされるとも思わない
javaのspringあたりが実はいいのかもしれん?
647:デフォルトの名無しさん
19/06/28 11:24:55.63 NfHf96pi0.net
そもそも消されるというのは何を言ってるのか
わざわざ.NET Standardにぶちこんだのに
今更改善はされんだろうが
648:デフォルトの名無しさん
19/06/28 11:52:47.07 DioESCVe0.net
セレニウムでヘッドレスモードで
Ajaxを使っているページを取得しようとすると
xpathが見つからないです。
また、ヘッドレスモードだとデータ取得がブラウザを表示する場合と比べて遅くないですか?
649:デフォルトの名無しさん
19/06/28 12:44:42.09 lDUutk93d.net
>>637
Springわろた
650:デフォルトの名無しさん
19/06/28 14:44:09.62 MTNOQapr0.net
>>639
C#関係ないから別スレで聞いてね
651:デフォルトの名無しさん
19/06/28 14:51:29.52 DioESCVe0.net
>>641
URLはって
そいたら移動する
652:デフォルトの名無しさん
19/06/28 15:05:19.30 NRtGoyzNp.net
そんな事書いてると、ウィルスサイトに誘導されるだけだぞ。
653:デフォルトの名無しさん
19/06/28 17:21:43.81 a5iu9xEpM.net
>>640
でも絶対消えないだろ
VMあるし動き続けるぞ
654:デフォルトの名無しさん
19/06/28 17:58:15.08 lioMzEvpd.net
Springはおっさん達にはいい反面、これからの人材育成のコストが高い。この事実により減ってく気がする。
655:デフォルトの名無しさん
19/06/28 18:05:48.87 jvOF1fHl0.net
スレタイとテンプレ読めないのおまえら
656:デフォルトの名無しさん
19/06/28 22:23:15.24 9V6DEbDgM.net
愚問だな
たぶん愚問も読めないぞ
657:デフォルトの名無しさん
19/06/28 23:46:40.47 kc3OO/mk0.net
おろかもん?
658:デフォルトの名無しさん
19/06/29 02:04:31.50 CfES0TXk0.net
char * を引数にとるdllの関数に対して、stringを渡しているのですがこの時エンコードはどうなってしまっているのでしょうか?
659:デフォルトの名無しさん
19/06/29 02:41:22.49 U4J3X9fn0.net
>>649
URLリンク(ufcpp.net)
660:デフォルトの名無しさん
19/06/29 02:43:08.25 CfES0TXk0.net
>>649ですが自己解決しました。(質問した時点では自分の悩みも理解できていませんでしたが…)
まずstringで渡る文字列のエンコードは
ansi or unicode(utf-16)になる。どちらになるかはDllimport文で指定する。
でした。
ところで結局自分が渡したかったのはutf-8だったので困ってしまったのですが
stringstringではなくbytes[]を引数にすれば好きなエンコードで渡せるので解決しました。
661:デフォルトの名無しさん
19/06/29 02:44:55.06 CfES0TXk0.net
>>650
入れ違いになってしまいましたがありがとうございます。
質問する前の粘りが少し足りてませんでした、すみません。
662:デフォルトの名無しさん
19/06/29 12:00:26.90 hssGSTafa.net
>>651
.NET Framework4.7以降が対象なら
UnmanagedType.LPUTF8Str もある
663:デフォルトの名無しさん
19/06/29 13:09:26.51 SmRBL5H90.net
でもC#はByte型やByte[]型配列の機能弱いからなぁ
何か加工しようと思ったらフルスクラッチするか、
String型にイチイチ変換するしか無いんだよなぁ
664:デフォルトの名無しさん
19/06/29 13:22:08.44 TBOm/90P0.net
unsafe
665:デフォルトの名無しさん
19/06/29 16:56:21.59 eBTnp91s0.net
c#で枠のないフォームっていうのが簡単に作れるけど
これって歴史的に言えば、10年前からできたんですかね?
技術的にとてつもないことだと思うんですが、こういう事まで機能として
提供して大丈夫なんですかね
666:デフォルトの名無しさん
19/06/29 17:29:11.42 ptlXP7M80.net
>>656
何か大丈夫じゃなくなることってあるの?
枠無しどころかフォームの形も自由に作れるけど
URLリンク(dobon.net)
URLリンク(dobon.net)
667:デフォルトの名無しさん
19/06/29 17:30:51.20 dztqrfzza.net
>>656
20年前にはできてたな
668:デフォルトの名無しさん
19/06/29 17:33:57.14 hssGSTafa.net
>>656
Win32APIのCreateWindow()でdwStyleを変えれば枠なしウィンドウを簡単に作れるし
そのAPIはMicrosoft DocsによるとWindows 2000時代にはサポートされていたわけだが
669:デフォルトの名無しさん
19/06/29 17:48:17.59 18j8PEbp0.net
>>656
技術的にはタイトルバーと枠を省くだけだから
とてくもないことということはないと思うけどな
描画的にはタイトルバーと枠を描画しないだけだし
動作的にはそれらが機能しないだけだし
670:デフォルトの名無しさん
19/06/29 17:53:44.15 AOeCR8Fo0.net
>>656
何を心配しているの?
671:デフォルトの名無しさん
19/06/29 17:55:17.63 FzKXrugu0.net
Xの目玉とか、伺かとか知らない世代か…
672:デフォルトの名無しさん
19/06/29 18:04:14.38 rlA57Q8P0.net
webbrowserコントロール使ってページ遷移してる時に
ページによってはアラートのメッセージボックス出してくるとこがあるんですが
そうなるとプログラムの制御がそこで固まってしまい進めません。
アラートをプログラムで自動的に閉じるにはどうしたらいいんでしょうか?
メッセージボックスつかまえてEnterキーが押された感じにするとかですかね?
673:デフォルトの名無しさん
19/06/29 18:20:19.05 18j8PEbp0.net
>>663
webbrowserのIEのバージョンを最新のIE11Edgeモードにすると
余計なアラートが出て来なくなったと思う
レジストリに設定しないといけないのが面倒だが
デフォルトだとIE7バージョンでレンダリングになり
たびたび