19/08/12 10:57:06.87 kI0RZN1g0.net
コレクションに要素が存在するかを判定するとき、Count > 0ではなくLinqのAny()を使う意味ってあるのでしょうか?
可読性のためだけにこちらを使ってるんですかね?
201:デフォルトの名無しさん
19/08/12 11:01:09.66 2iL+RtWU0.net
>>195
TextBoxコントロールを使わないのならそうなるだろうね
等倍フォントなら少しは楽できるけどやることは変わらない
IMEの操作も考えてるんならAzukiっていうエディタコントロールを参考にすると良いよ
202:デフォルトの名無しさん
19/08/12 11:26:07.50 HTWZ+S1Q0.net
>>197
ありがとうございました
何行目の何文字目とか指定できれば簡単なんですが
いちいち文字列の長さを測定しなければならないというのは不便ですね
203:デフォルトの名無しさん
19/08/12 11:41:48.29 ssrYJHqQ0.net
>>196
リンクの式はイテレータを返すだけだからCountやLengthのプロパティを持ってない。Count()メソッドがあるけどこれは全件評価が走ってしまうので、最終的に欲しい値が件数の場合以外は使わない。
その状態でイテレータに引っかかるのがあるかどうかを判定する際に使うのがAny()。普通のリストや配列に対してCountやLengthを使わずにAnyを使う意味はない。
204:デフォルトの名無しさん
19/08/12 11:56:29.02 kI0RZN1g0.net
>>199
ありがとうございます
SortedDictionaryに対してAny()で判定していたので、これについてはCountプロパティがあるのでCount > 0で良いということですね
205:デフォルトの名無しさん
19/08/12 12:40:47.91 c1yJbHcz0.net
>>199
勉強になる
206:デフォルトの名無しさん
19/08/13 15:58:52.24 hrddazny0.net
どこが「初心者用」だよ?って質問と回答ばかりだけどなww
昔は上級者用の質問スレもあったようだが
まあ一つに集約されてるほうが情報収集には便利だけど
スレタイはこっちが気に入ってるし
シャープとフラットをかけてる辺り
207:デフォルトの名無しさん
19/08/13 18:46:02.38 PAgqa6Je0.net
NuGetパッケージの管理より
Seleniumパッケージを最新にしました。
しかし、それから
Chrome は自動テスト ソフトウェアによって制御されています。
という文言が画面に出る様になってしまいました。
options.AddArgument("disable-infobars");
を指定する事でこれまでは、
この様なエラーメッセージは表示されていませんでした。
どうすれば消えますか?
208:デフォルトの名無しさん
19/08/13 19:01:18.55 ZVs77qOsa.net
>>203
標準でもなんでもないサードパーティーライブラリの話はスレ違い
↓あたりで適切なスレを探して
web制作管理 - 5ちゃんねる掲示板 URLリンク(mevius.5ch.net)
WebProg - 5ちゃんねる掲示板 URLリンク(medaka.5ch.net)
209:デフォルトの名無しさん
19/08/13 19:57:44.52 v4xllOHk0.net
>>203
その文言そのままgoogleにブチ込んで見る人生よ
210:デフォルトの名無しさん
19/08/13 20:37:06.27 4ID4APxI0.net
ずーっとseleniumと格闘してんね
211:デフォルトの名無しさん
19/08/13 20:54:18.53 yZEhfFzKa.net
>>205
すごい字余りの川柳かと思った
212:デフォルトの名無しさん
19/08/13 20:59:35.55 Gdeao/QQ0.net
セレニウム野郎まだいたのかよw
213:デフォルトの名無しさん
19/08/13 21:33:22.43 PAgqa6Je0.net
>>204 >>205
新しいNuGetパッケージについての
解説ブログはないんだよ。
214:デフォルトの名無しさん
19/08/13 21:45:22.03 ZVs77qOsa.net
>>209
>>1
215:デフォルトの名無しさん
19/08/13 22:29:42.70 4ID4APxI0.net
>>209
君が解説ブログかけばいいんでは?
てか解説ブログあること前提なの?
リリースノート見るなりソース読むなりすればいいのでは?
できないならなんでバージョンあげたの?
問題出たならバージョン戻せば?
なんのためにnuget使ってるの?
216:デフォルトの名無しさん
19/08/13 22:56:59.36 eH0ENH5J0.net
ちなみにこれってエヌユーゲッツなんかねヌゲッツなんかね。稀に他人と会話することがあるんだけど口頭で言う時に困る単語のひとつ…!
217:デフォルトの名無しさん
19/08/13 23:00:05.96 RVQw4+nc0.net
URLリンク(monobook.org)
>NuGet(読み:にゅーげっと、ぬげっと)
らしい
218:デフォルトの名無しさん
19/08/13 23:01:57.10 PAgqa6Je0.net
>>211
常に最新を使った方がいいのかな~と思いまして。
戻した事がなかったので調べてみます。
この手の技術系は、
詳しい人がブログにまとめてくれてるのでいつもそれらを参考にしています。
>>212 >>213
エヌユーゲット
219:デフォルトの名無しさん
19/08/13 23:10:42.03 kJJDzO2R0.net
漏れは、Ruby で、Selenium WebDriver を使っているけど、
「Chrome は自動テスト ソフトウェアによって制御されています」というメッセージは閉じれるけど、
その部分を閉じても、その幅が消えないから、使える画面が少なくなる
220:デフォルトの名無しさん
19/08/13 23:18:57.47 4ID4APxI0.net
selenium君もruby君もスレからずれたレスしないでね
221:デフォルトの名無しさん
19/08/13 23:24:54.56 eH0ENH5J0.net
>>213
ヌゲットにしとくかな…
Nuclear unlimited gigantic enhanced technology
222:デフォルトの名無しさん
19/08/13 23:29:34.04 mICjniMU0.net
selenium君はRuby君を反面教師にするといいよ。
スレ違いを繰り返すのがどれだけ他人から見て迷惑でみっともない行為なのかをこれ程上手く伝えられる教材はとても稀だから。
223:デフォルトの名無しさん
19/08/14 00:36:59.18 jQtv4Yb60.net
C#+Seleniumなのでこのスレが正しい
224:デフォルトの名無しさん
19/08/14 01:38:02.43 GCJub4Dp0.net
誘導を無視することは正しいことですか?
ライブラリの問題であって言語の問題ではないから誘導しているのです
使用しているのがC#であっても言語の質問でなければ正しくはありません
問題が言語なのかライブラリなのかわからない人もいるので初めてレスするなら何の問題も無いし、誘導してくれるでしょう
今まで何度誘導を無視しましたか?
長期間、言語ではなくライブラリを起因とする質問を繰り返すのは正しいのですか?
225:デフォルトの名無しさん
19/08/14 02:14:02.89 jQtv4Yb60.net
それはあくまでもあなたの意見でしょうが
226:デフォルトの名無しさん
19/08/14 03:08:22.27 YX6BCcxFa.net
芸人の押すなよは押せって意味だからどんどんやっていいよ
どうせ過疎スレで人口なんか恐らく数十人しかいないw
227:デフォルトの名無しさん
19/08/14 03:17:28.62 GCJub4Dp0.net
1に書いてあることと同じだけど、どのへんがあなたの意見なの?
228:デフォルトの名無しさん
19/08/14 08:25:36.73 RPrYPUsF0.net
>>221
俺は>>220とは別人だが同意見だ
229:デフォルトの名無しさん
19/08/14 08:33:56.94 28G/wIAb0.net
そもそもWinFormsもWPFも言語仕様じゃなくてライブラリだ
ライブラリを外せってのは余りに酷い暴論だよ
230:デフォルトの名無しさん
19/08/14 08:59:28.69 gdRXPT/U0.net
ライブラリが即NGじゃなく
サードパーティ制のライブラリがメインの質問&原因だからスレ違いでしょ
標準ライブラリは勿論OKだし
C#に関連の深い.NETやVisualStudio周りなら多少逸れてもOKだろうし
サードパーティでも例えばODP.NETとかのら基本的な質問なら答えても文句言われないでしょ
逆にUnity絡みならC#であっても専門スレのが有益だから誘導されるだろうし
誘導には、スレが汚れるから他所へ行けって側面と
ここだとまともな回答が得られないからこっちを当たれって案内の面があるんよ
231:デフォルトの名無しさん
19/08/14 09:34:24.96 mrBPpWLv0.net
>>217
この前マイクロソフトの人柄ヌゲットと言ってたからヌゲットでOK
232:デフォルトの名無しさん
19/08/14 09:38:00.49 28G/wIAb0.net
標準とか外部ライブラリーって>>1のどこに書いてあるんだよ
つまり「個人の感想です」だな
233:デフォルトの名無しさん
19/08/14 12:04:33.55 RWvjQCFF0.net
馬鹿がなんと言おうとスレチ
234:デフォルトの名無しさん
19/08/14 12:05:06.26 HkWgtzgRM.net
つかSelenium君の問題は、Seleniumの問題というより
彼の頭の悪さの問題なんだよ
それを解決するのはこのスレじゃない
そこは明白だろ
235:デフォルトの名無しさん
19/08/14 12:38:54.90 Ct2lHzgAa.net
誘導してる人の動機が利他的なものなら素晴らしいことだけど、
実際は人を批判しないと気が済まないだけだからねw
そこを見透かされてからかわれているのに、それがわからないところが何とも滑稽だね
だいたいこんな過疎スレで周辺分野の質問があって誰が困るのかねw
誰も困らないと思うけど。
236:デフォルトの名無しさん
19/08/14 12:48:55.76 LymH/UUL0.net
質問者本人が(回答を得られないという点で)困るだろ
237:デフォルトの名無しさん
19/08/14 13:03:38.03 pFnHcoJr0.net
スレチな質問なんだから誘導して貰えるだけマシ
238:デフォルトの名無しさん
19/08/14 13:09:35.97 RPrYPUsF0.net
質問者以外も、どうでもいいやり取りを見せられて迷惑だと思うよ。
過疎っていても適切な話題が書き込まれていた方が良い状態だと思う。
239:デフォルトの名無しさん
19/08/14 13:40:20.40 mrBPpWLv0.net
>>231
君のようなオナニー野郎が1番気持ち悪いよ
240:デフォルトの名無しさん
19/08/14 14:49:03.49 jQtv4Yb60.net
そもそも
C#もSeleniumも根本はC++で実装さえれている
Seleniumに詳しいヤツがいないから
いいがかりつけられてばかりでかわいそう
241:デフォルトの名無しさん
19/08/14 15:26:24.08 RPrYPUsF0.net
>>236
かわいそうって、自分が?
何で実装されているかなんて尚更無関係だろうに、そんな頓珍漢なことばかり言ってるから煙たがられるんだよ。
242:デフォルトの名無しさん
19/08/14 15:39:01.35 pFnHcoJr0.net
>>236
そんじゃこれからはC++スレで質問してね
Seleniumに詳しい奴もいっぱいいるだろうからお前の助けになるだろうよ
243:デフォルトの名無しさん
19/08/14 16:13:47.02 jQtv4Yb60.net
C#の言語自体がC++で作られてる事をしらんふぬけども
244:デフォルトの名無しさん
19/08/14 16:16:19.89 IV/LzryA0.net
僕の内臓を返せ~
245:デフォルトの名無しさん
19/08/14 16:59:56.55 jDEWV9x2M.net
Roslynも知らないガイ
246:デフォルトの名無しさん
19/08/14 17:00:39.76 GCJub4Dp0.net
そもそもかなり長期間seleniumの質問が投げられてるのにseleniumに詳しい奴からの回答なんてruby君以外からほぼ無い状態
だからこそ誘導してるんじゃないか
スレ趣旨から多少ずれてようがわかる範囲なら回答してる
回答した上で誘導までしてるのに誘導だけは無視して延々と質問を投げるなら嵐とかわらんじゃないか
247:デフォルトの名無しさん
19/08/14 17:01:32.64 pFnHcoJr0.net
>>239
GitHub - dotnet/coreclr: CoreCLR is the runtime for .NET Core. It includes the garbage collector, JIT compiler, primitive data types and low-level classes.
URLリンク(github.com)
コア部分は間違いなくC++で開発されているから安心して巣立ってくれ
248:デフォルトの名無しさん
19/08/14 18:33:13.55 rSDdWO1t0.net
聞きたくなければ黙ってseleniumをNGワードに入れれば良い
匿名掲示板なので日記書くやつもいるだろうし
他人の服装まで直す行為は無駄
ごちゃごちゃ発言するな
249:デフォルトの名無しさん
19/08/14 18:48:49.85 Q4kX3C+k0.net
いいかげんseleniumの話題はやめて欲しいよね
250:デフォルトの名無しさん
19/08/14 21:06:43.58 dNTNWi1CM.net
業務アプリケーションでElectron.NET使ってる人いる?そういった技術も習得してた方がいいかな?
251:デフォルトの名無しさん
19/08/14 21:09:29.90 IV/LzryA0.net
どうしてなの―ッ!!
どうしてエレクトロンしないのよーッ!!
252:デフォルトの名無しさん
19/08/14 21:11:16.53 eGLvTmmqa.net
業務アプリって比較的新しい技術ってあんま使わなくね?
使えるように勉強するのは多いに結構なことだとは思うけど
253:デフォルトの名無しさん
19/08/14 21:34:40.40 oxhAJDr00.net
RPAスレはSeleniumの話題OKだからそっちいきなよ
254:デフォルトの名無しさん
19/08/14 22:21:04.82 bBZ00i3Q0.net
Seleniumスレでも発達障害は解決できるとは思えないけどな
255:デフォルトの名無しさん
19/08/15 00:01:22.09 5MxOdPEK0.net
options.add_argument( '--disable-infobars' ) # 通知バーを消す
Ruby で、こう書いても、通知バーを消せない!
Chrome なんて、仕様をコロコロ勝手に変えるし、文書も作らないだろ。
ソースコードを読めって、無茶苦茶だろw
各ブラウザの機能なんて、相手にしないほうが良い
256:デフォルトの名無しさん
19/08/15 00:17:18.78 4RLQ3HFd0.net
>>246
WPFやFormアプリケーションで描画しきれないケースのみ採用するパターンが多いかと。
習得する分には、もしもの時に出せる手札が増える(知見が広がる)ので良いとは思います。
257:デフォルトの名無しさん
19/08/15 01:51:37.30 yTBvPSIa0.net
業務アプリは大規模開発だったり要件が機能追加(既存ソースの流用)だったりが多いから知ってる人が少ない技術は敬遠される傾向があるよね・・・
258:デフォルトの名無しさん
19/08/15 05:13:06.12 YYpr9nEd0.net
dapper で、dynamic型で取得したレコードのカラム名は、どうやってプロパティにマッピング?すればよいでしょうか?
以下のようなイメージです。
var list = connection.Query<dynamic>(@"SELECT cd, name FROM hoge_table").ToList();
list.ForEach(item =>
{
this.cd = item.cd; //cdカラムは存在しているが、この方法では取得出来ない。
});
259:デフォルトの名無しさん
19/08/15 05:18:20.88 bD8BPP4C0.net
なぜdynamicなんか使ってるの?
260:デフォルトの名無しさん
19/08/15 09:03:09.32 NGEmLDBt0.net
>>248,>>252,>>253
今はあんまり使われていないんだ
休みだし今後のためにチラッと触ってみる
261:デフォルトの名無しさん
19/08/15 13:17:25.77 XW4rFrdd0.net
using (var conn = new SQLiteConnection("Data Source=:memory:"))
{
conn.Open();
conn.Execute("CREATE TABLE test (cd INTEGER, name TEXT)");
conn.Execute("INSERT INTO test VALUES (@cd, @name)", new { cd = 1, name = "a" });
conn.Execute("INSERT INTO test VALUES (@cd, @name)", new { cd = 2, name = "b" });
foreach (var row in conn.Query<dynamic>("SELECT cd, name FROM test"))
{
Debug.WriteLine($"{row.cd} - {row.name}");
}
}
問題なかったけど?
コンパイルエラーになってるんだったらその内容書いて
262:デフォルトの名無しさん
19/08/15 15:14:02.56 jCEAQJdF0.net
常駐するアプリを作るとき、serviceにすると何が嬉しいのですか?
263:デフォルトの名無しさん
19/08/15 15:26:23.04 nQmxjzka0.net
ログインしてなくても動く
264:デフォルトの名無しさん
19/08/15 16:03:39.12 wwJYNY5r0.net
ありがとうございます
265:デフォルトの名無しさん
19/08/15 17:15:06.30 X+hhUeCb0.net
>>255
dapperはdynamic使うのが簡単でウマーだから
266:デフォルトの名無しさん
19/08/15 18:25:05.09 jCEAQJdF0.net
>>261
インジェクション対策は?
267:デフォルトの名無しさん
19/08/15 18:41:02.43 VbDuA0j40.net
>>262
ちゃんとパラメーター変数使ってるジャン
268:デフォルトの名無しさん
19/08/15 19:29:51.78 UYxtktoid.net
>>261
cdカラムとかを指定して取り出したいなら結局クラス作った方が楽やん
269:デフォルトの名無しさん
19/08/15 20:14:41.68 BPnFBcl20.net
大文字小文字の問題とか無いのかな?
止めて変数rowをウォッチしてみてね
270:デフォルトの名無しさん
19/08/15 20:56:25.88 X+hhUeCb0.net
>>264
ケースバイでしょ
271:デフォルトの名無しさん
19/08/15 20:58:03.96 bD8BPP4C0.net
>>266
うん、だけどそれで悩んでるのは事実やん
272:デフォルトの名無しさん
19/08/15 21:46:48.94 pWdXHbkI0.net
>>251
やっぱりそうだよね。
Seleniumを使いこなせないPGがC#パーには多すぎるのが問題だな
273:デフォルトの名無しさん
19/08/15 22:36:14.06 nQmxjzka0.net
あーハイハイ
274:251
19/08/15 23:18:45.58 5MxOdPEK0.net
まあ、Ruby では、
driver.execute_script で、JavaScript(JS)のソースコードを実行できるから、
通知バーの要素を取得して、その部分を、JS で削除できるかも知れない
例えば、漏れは普段、Showroom の多くのアバターなどを、こうやって削除している
jsCode = <<'EOT'
var elem = document.getElementById('js-avatar');
elem.parentNode.removeChild(elem);
EOT
driver.execute_script jsCode
275:デフォルトの名無しさん
19/08/16 00:31:14.40 Capr2asl0.net
一人でも煩いスレ違い居座り野郎が、二人になって相互作用まで始めてしまったか。
276:デフォルトの名無しさん
19/08/16 00:40:48.73 w8wDW0z80.net
せめてjavaスレいけよ
277:デフォルトの名無しさん
19/08/16 00:47:42.08 9Iug+Ez/0.net
ん?なんでrubyの話が突然出てくるんだ?
278:デフォルトの名無しさん
19/08/16 00:56:27.81 jFKiomKf0.net
だから。相手にすんなよ。
しつこくても枯死するまで放って置けばいいのに。
279:デフォルトの名無しさん
19/08/16 00:57:25.58 Capr2asl0.net
>>273
いくらやめろと言われてもところ構わず唐突にRubyの話を始める頭のおかしい奴が、この板にいついているから。スレタイにRuby禁止と書かれているスレがいくつかあるが、コイツが原因。
280:デフォルトの名無しさん
19/08/16 00:58:13.28 2i9/2j960.net
C#っつーかプログラミング言語一般の話になっちゃうかもしれないんですけど
勉強してて例外のところに差し掛かったんですけどめっちゃ色々種類あるじゃないですか
んでもって例えば関数一つ作るにしても考えようによってはほんと沢山の種類の例外が発生する可能性がありますよね
そういうのをとにかく可能性が少しでもあれば例外をスローするようにしてたらコードが例外ばっかになっちゃう気がします
書く例外と書かない例外の境界線はどこにあるのでしょうか
281:デフォルトの名無しさん
19/08/16 00:58:14.57 Capr2asl0.net
>>274
すまん、その通りだな
282:デフォルトの名無しさん
19/08/16 01:08:02.04 G0Kx7mvIa.net
>>276
よくわからん理屈だな
仮にその例外を「書かない」と判断したとして、その「例外的な状態」を例外の代わりにどう処理するつもり?
放置しても問題なく動き続けられるorその場で適切な対処をして回復できるなら、そりゃ例外投げるよりその方がいいに決まってる
283:デフォルトの名無しさん
19/08/16 01:13:52.65 Capr2asl0.net
>>276
ライブラリ関数に渡す引数が正しくないとかのように、自分が書いているコードが正しくない場合に発生する例外、逆に言えば正しいコードを書けば発生しない例外は基本的にその場ではいちいちcatchしない。
ただし完全にバグがないということを保証するのは困難なので、プログラムの上流でまとめてcatchして何らかのメッセージを出すなどした方が良い。どう対処すべきかはそのシステムに求められる要件次第だけど。
ファイルにアクセスできないとか、ユーザからの入力データが正しくないことにより発生するような例外とか、自分のコードの外部の要因で発生する可能性のある例外は、その都度catchして適切に対処する必要がある。
284:デフォルトの名無しさん
19/08/16 01:51:17.26 XNgAzUDc0.net
四則演算やっても
オーバーフローもゼロ除算もあるしね
一番上のcatchでまるっと処理したほうがええ
285:デフォルトの名無しさん
19/08/16 02:16:34.36 3ldAil1N0.net
>>276
その処理内で対処できるなら投げない
できないなら例外なげる
>>279-280
キャッチする話じゃなくて投げるほうの話だろ
まあ、キャッチも同じ考え方で、自分で対処できる例外はキャッチする
それ以外はそのまま上位へ
今はこういう考え方が主流だと思う
286:デフォルトの名無しさん
19/08/16 02:17:58.68 KW3/fLy3a.net
>>276
そんなの手を動かさずに机上で考えてるからそうなるだけw
処理できない問題は(基本的には)例外を投げて呼び出し側に通知するしかない。
処理できない例外は投げるしかない。
処理できないのにcatchして握りつぶしてよい例外なんかない。
何が難しいの?
287:デフォルトの名無しさん
19/08/16 05:58:38.34 RrHjcCxL0.net
初心者マークの人へのアドバイスとしては
例外をthrowするケースは
・事前条件が崩れる場合、例えば引数がおかしい場合や処理の準備が整わない場合
・処理に失敗したことを伝える場合
まずはこのあたりを基準に
逆にcatchはむやみやたらにしてはいけないし、特に握り潰してはいけない
他人のソースをたくさん読んで、たくさん考えて書くしかないよね
288:デフォルトの名無しさん
19/08/16 07:20:17.23 z6Pxs9AVa.net
javaみたいに「このメソッドはこんな例外を投げるから必ずtry-catch書けよ」ってできなかったっけC#
289:デフォルトの名無しさん
19/08/16 07:41:23.99 G0Kx7mvIa.net
>>284
Javaの最大の失敗の一つだね
C#に採用されなかったのはもちろん、Kotlinですら省かれた
290:デフォルトの名無しさん
19/08/16 09:30:31.26 1KF8kPqD0.net
そもそもチェック例外を採用した言語ってJava以外にあったか
291:デフォルトの名無しさん
19/08/16 09:33:04.09 w8wDW0z80.net
>>276
動作止めたくないなら例外拾って全部ログに書き込む
292:デフォルトの名無しさん
19/08/16 11:35:21.61 16ocBcE+p.net
全部のケースを全部継続可能か不可能か判断してケース分けするに決まってんだろ。
甘えんな
293:デフォルトの名無しさん
19/08/16 11:43:27.15 i2ShkSLcM.net
俺はtry入れないでまず作って
例外が頻発する箇所に追加していく感じ
最初から丁寧に入れていくのは時間の無駄が多い
294:デフォルトの名無しさん
19/08/16 12:43:54.88 vQM55/5Pa.net
いやとにかく
(1) 例外を投げるかどうか
(2) 例外をcatchするかどうか
こんなことで悩むなんてありえないよ。悩む理由がない。
悩みどころなんて、どの例外を投げるかの選択、あるいは例外をどの程度
場合分けするか、ぐらいしかない。
295: これは例えば、引数が変だった場合にとにかくいつでもざっくりArgumentExceptionを投げて済ますか、 引数がどう不適切なのか、細かく場合分けしてより適切な例外を投げるようにするかの選択 余談だけどこういうと怒る人もいるかもしれんが、個人的には例外の場合分けなんて 本当はどうでもいいと思ってるw 役に立つことはほぼないwほとんど場合プログラマの自己満足だw そのコードを見られる場合にはね。(だから他人が使うライブラリを書いてる場合は別問題)
296:デフォルトの名無しさん
19/08/16 12:50:25.25 vQM55/5Pa.net
あと、そもそもメソッドのデザインとして
例外を投げる代わりにout引数か戻り値でnull(あるいは例外オブジェクト)
を返すって選択肢もあるから、そこで迷うってケースもないことはないけどね。
呼び出し側でいちいちtryブロックを書く必要があるのは鬱陶しい、
って需要もあるから
297:デフォルトの名無しさん
19/08/16 12:59:06.06 mZqFzvyqa.net
キモいRuby厨はスレ追い出されてC#スレに引っ越した
298:デフォルトの名無しさん
19/08/16 13:33:31.65 w8wDW0z80.net
>>289
たぶん環境が緩いというか品質が知れるわ
299:デフォルトの名無しさん
19/08/16 14:56:57.30 /nFnP4zmd.net
>>291
out使うのはなぜ?
300:デフォルトの名無しさん
19/08/16 15:10:09.14 Boqt1xFK0.net
outでエラーコード返すのでは?
301:デフォルトの名無しさん
19/08/16 15:19:40.41 s9O3qxdqd.net
昔はout使う構文が嫌いだったけど、7.0でインライン宣言出来るようになってからそうでもなくなった
302:デフォルトの名無しさん
19/08/16 16:31:30.73 vdJZcXlx0.net
ValueTupleにエラーコード入れて返すじゃ駄目なの?
303:デフォルトの名無しさん
19/08/16 16:34:34.90 vQM55/5Pa.net
>>294
TryParse的な物を想定して書いたけど>>291じゃ端折り過ぎて意味不明だね申し訳ない
戻り値nullは(メソッドじゃないけど)as的な物を想定
例外オブジェクトをout変数で返すのはたぶんやってる人はほどんどいないけど、
tryブロックが嫌いなら場合によっては便利かも
304:デフォルトの名無しさん
19/08/16 16:37:56.56 AwRYym3H0.net
>>272
JavaとJavaScriptは別ものだ
あほ
Slenium以前の問題
305:デフォルトの名無しさん
19/08/16 16:52:07.81 /nFnP4zmd.net
>>298
タプルで返せばよくない?
306:デフォルトの名無しさん
19/08/16 17:53:53.26 9StEh2pLd.net
例外はログ拾う時に絶望したくないから適切に投げるなぁ。
どうでも良いという論調は作るだけで保守しない人の発想みたいで少し嫌かもしれん。
アプリケーションのロジックをバッチでも使いたい、みたいな時に、毎度戻り値を検証するんじゃなくてバッチの一連のトランザクション自体落としちゃいたい時に二度手間な気がするんだが、その辺どう作ってるんだろう?
307:デフォルトの名無しさん
19/08/16 19:27:37.17 16ocBcE+p.net
>>301
二度手間と思うのは一人で全部コード書いてるから。
308:デフォルトの名無しさん
19/08/16 19:30:21.63 O2kbbLouM.net
>>299
え?なぜjsを指定してると思うの?
元々javaのつもりで書いてるんだけど。
沸いてるの??
309:デフォルトの名無しさん
19/08/16 21:32:15.51 HNLZHpWT0.net
>>303
javaの拡張子は【.java】だよ
【.js】は、思いっきりJavaScriptの拡張子
少しググって勉強してね
310:デフォルトの名無しさん
19/08/16 23:41:19.50 AADFbgN80.net
プログラム板住人は煽られるとすぐムキになるから、転載アフィブロガーの種まきに最適な場所になっちまってんだろう
311:デフォルトの名無しさん
19/08/17 00:34:58.82 1HSNgy8G0.net
Seleniumって便利だな
もっとユーザが増えてほしい
312:デフォルトの名無しさん
19/08/17 02:16:51.47 EsYhqRXq0.net
>>304
え?全然噛み合わない。
なにこのアスペ
313:251
19/08/17 02:31:35.40 fYRni8gj0.net
Ruby on Rails では、作者のDHH が、2014年に「TDD(テスト駆動開発) is dead」と発言して、
ユニットテストから、Selenium を使った、E2E(end to end)テストへ移行した!
それで、Rails 6 では、
DHH のいるBasecamp 社から、GitHub へ移籍した、Eileen Uchitelle によって、
テストを複数CPU コアで、並列実行する機能が実装された!
314:デフォルトの名無しさん
19/08/17 10:48:29.26 uGEbzf6ra.net
気狂いしかいねーのかよ
315:デフォルトの名無しさん
19/08/17 12:36:57.19 zUPT7dbd0.net
見てわかんねーのか
316:デフォルトの名無しさん
19/08/17 13:25:59.90 Mqg+a2XP0.net
暑さで脳味噌が溶けちまったんだろう
317:デフォルトの名無しさん
19/08/17 14:35:53.37 sCIOh4/p0.net
なんでRubyスレで言わねえんだ?
318:デフォルトの名無しさん
19/08/17 15:08:20.60 BwzrwDPv0.net
>>303
なんでJavaのつもりで書く必要があったの?
319:デフォルトの名無しさん
19/08/17 15:55:56.68 qUgpJGd70.net
>>307
あんたの272の近辺にはJavaの話は全く出てきていないが、もしかするとRubyがJavaだと思った?
320:デフォルトの名無しさん
19/08/17 19:21:30.41 lWdyvSQl0.net
エスパーすると、ASP.NETがあるがデスクトップアプリがメインだったC#よりまだJavaスレの方がまだselenium詳しそうなやつ多そうだから、せめてjavaスレ行けって事だろ。
ほんとこれぐらいもエスパーできなきゃアホやろ
321:デフォルトの名無しさん
19/08/17 21:04:14.52 qUgpJGd70.net
それなら「Rubyスレに行け」が流れ的に当然であるのに何故か「Java」
彼にとってサーバーサイドの言語は全部Java
ほぼ「ゲーム機を全部ファミコンと呼ぶおかん」状態と考えるのが妥当と思われる
322:デフォルトの名無しさん
19/08/17 22:31:29.74 2lsOlPOTd.net
>>315
それはあまりにも苦しい擁護だな
323:デフォルトの名無しさん
19/08/17 22:32:06.22 fWrg11mTM.net
seleniumがjavaで書かれてるからじゃないの
>>236->>238のC++云々からの流れかと思ったけど
324:デフォルトの名無しさん
19/08/17 22:34:51.12 8QP5rwWB0.net
KeyValuePair c=func1();
cをnull判定できないんですがどうしたらいいですか?
Myclass c=func2();
の場合、null判定できます。
クラスは出来て、KeyValuePairは出来ないのは何故ですか?
325:デフォルトの名無しさん
19/08/17 22:35:45.47 1som7JJwa.net
>>319
C# クラス 構造体
でググれ
326:デフォルトの名無しさん
19/08/17 22:37:54.74 RvVfsurb0.net
KeyValuePairにnullなんて入らないからな
327:デフォルトの名無しさん
19/08/17 23:10:53.90 u5xmISorM.net
>>314
以後アスペはNG
328:デフォルトの名無しさん
19/08/17 23:12:11.34 u5xmISorM.net
>>316
流石に頭が悪すぎるのでこれ以上会話するのは不可能
329:デフォルトの名無しさん
19/08/17 23:22:57.32 w7ZVAy9F0.net
>>319
func1をTryParseみたいにbool func1(out KeyValuePair c)にして値入れたくないときはfalseを返すようにしたら?
構造体にnullは入れられないし、どうせそのあとnullで分岐するでしょ
330:デフォルトの名無しさん
19/08/17 23:30:37.14 u5xmISorM.net
>>316
先走った場違いな発言を認めたくなくて必死過ぎ、こーゆう使えない部下は直ぐに切るからこいつは低収入確定
331:デフォルトの名無しさん
19/08/17 23:35:04.26 BwzrwDPv0.net
>>319
KeyValuePair?
を返すようにしたらいい
332:デフォルトの名無しさん
19/08/17 23:36:59.53 +vBKVSmmM.net
>>325
無職のおっさんに言われてもなぁ
333:251
19/08/17 23:47:28.51 fYRni8gj0.net
そりゃ、C#・Java は、静的言語で同じだから、
静的言語になれているなら、Selenium の話は、Java で聞くのがよい
動的言語なら、Ruby, Python で聞けばよい
Seleniumデザインパターン&ベストプラクティス、2015、オライリー
これは、Rubyでテストを書いた本
ウェブ系・HTML は基本、Ruby。
まあ、Java のSelenium の本も出てるけど
Java は、Spring Boot か?
動的言語のGroovy じゃないのか?
334:デフォルトの名無しさん
19/08/18 01:25:10.35 KlRCzn4x0.net
javaの話が出てきても勘所がないから検討違いな粘着になるんだよな
Seleniumについて知識があれば文献的に充実してるのはjavaだろうに
335:デフォルトの名無しさん
19/08/18 03:58:12.87 9i6q0zGn0.net
c#からc#をインタプリタで実行できるライブラリってありますか?
336:デフォルトの名無しさん
19/08/18 06:08:49.00 t6n5brFa0.net
>>330
URLリンク(ufcpp.net)
みたいな話か?
337:デフォルトの名無しさん
19/08/18 13:41:29.71 +4zzAGlV0.net
WinForms で質問です。
標準の Form から継承した MyForm を abstract で作りました。
この MyForm は abstract なのでデザインで開けません。
(ここまでOK)
MyForm をもとに SubForm なるものを継承して作りました。
これには abstract は付けていないのですが、これもまたデザイナで開けません。
あまりに残念すぎる挙動だと思うのですが、これは仕様でしょうか。
338:デフォルトの名無しさん
19/08/18 13:43:21.22 +3q0UZxZ0.net
Visual Studio .NET (2002) から続く仕様だよ
339:デフォルトの名無しさん
19/08/18 13:45:24.63 jp7+H4+aM.net
.NETではフォームの継承は推奨されていません
共通化したい場合はユーザーコントロールを使用してください
なお、WinFormsは既に開発が終了しており、今後改善される可能性はありません
340:デフォルトの名無しさん
19/08/18 13:51:36
341:.77 ID:+4zzAGlV0.net
342:デフォルトの名無しさん
19/08/18 13:57:02.56 ET6qk6jL0.net
うちは自社開発企業だがFormsはとっくの昔に淘汰された
Formsで作ってたアプリは全部WPFで作り直した
343:デフォルトの名無しさん
19/08/18 14:04:52.38 APnDI8yA0.net
visualstudioを利用しているのですが最近デバッグ時にフォームアプリを動かすと
System.InvalidOperationException: '有効ではないスレッド間の操作: コントロールが作成されたスレッド以外のスレッドからコントロール 'hoge' がアクセスされました。'
の様なエラーが出て止まる様になりました
しかし出来たプログラムをふつうに動かす分には異常ありません
今まで作ってきた問題のなかったすべてのバージョンでこの様な現象が起こっています
これは何が原因でしょうか?
344:デフォルトの名無しさん
19/08/18 14:21:30.88 /RKifLkIa.net
>>335
騙されたらあかんw
継承後のフォームもちゃんとデザイナで開けるし
コントロールを追加したりいろいろ出来るよw
フォームの継承なんて10年以上やってなかったが
今実際試して確認したから間違いない
345:デフォルトの名無しさん
19/08/18 14:29:19.80 MLAzMixE0.net
>>337
先日MSがWindowsUpdateでやらかしたのが原因で、結構話題になっているから検索すると見つかる
「windowsupdate vb」 で
346:デフォルトの名無しさん
19/08/18 15:44:26.69 +4zzAGlV0.net
>>338
「abstract な継承元から継承すると、継承先フォームがデザイナで開けない」
という意味でしたけど、こちらだと VS2019 でも叱られてしまいます。。
347:デフォルトの名無しさん
19/08/18 15:45:05.69 +4zzAGlV0.net
継承元が abstract じゃない単純なファームの継承だったら、まったく問題ありません。
348:デフォルトの名無しさん
19/08/18 17:17:03.03 zvOpWkeBd.net
>>334
終了なんかしてないよ
349:デフォルトの名無しさん
19/08/18 17:55:07.39 /RKifLkIa.net
>>340
なるほど。
abstractにこだわる必要が本当にあるのかなとも思うけど、
何ならコンストラクタをprotectedにすりゃ機能的にはほぼ同じだね。
(abstractメンバーはもちろん書けないけど)
これならそういう不具合は起こらないっぽい
350:デフォルトの名無しさん
19/08/18 18:33:20.50 5+yaTAKE0.net
蕎麦とラーメン間違えるとかもう簡単ケータイにしたほうがいいんじゃね。
たぶんVPNとか使わわんだろうし。
俺もIntelだからもう日産もゴーヤチャンプルーも同じ味付けで食える。
351:デフォルトの名無しさん
19/08/18 21:26:51.68 37ku1J740.net
Keyvaluepairの.Keyをnull判定したら
nullできました。
構造体だけどnull判定できましたが??
keyvalueopair本体はできないけど
KeyまたはValueはnull判定できました。
何故???まぁ良かったんですけど
352:デフォルトの名無しさん
19/08/18 21:29:43.77 jp7+H4+aM.net
それはKeyプロパティが返した値をnull判定しているのであり、KeyValuePairが構造体であることは全く関係ない
直行する問題の分離ができない人はプログラミング向いてないよ
353:デフォルトの名無しさん
19/08/18 21:32:13.83 DxNAHPOT0.net
構造体はnullにできないからKeyValuePair?使えって言ってんのに
354:デフォルトの名無しさん
19/08/18 21:33:54.95 DxNAHPOT0.net
言っとくけど「?」は文字化けじゃないぞw
355:デフォルトの名無しさん
19/08/18 21:37:51.98 37ku1J740.net
>>346
ようはList<KeyValuePair<string,double>>
"レタス" 100
"キャベツ"120
"トマト" 120
こういうリストで、ピーマンって探すと
Keyがnullになってくれたので、良かったです。
KeyValuepairがnullじゃないのが不思議ですが
null判定できてよかった
356:デフォルトの名無しさん
19/08/18 21:46:55.40 DxNAHPOT0.net
構造体はnullにできないと何度も言われてるのになんで不思議に思うんだろう
ピーマンを探すときのList.FirstOrDefault()の戻り値は
KeyValuePairをデフォルトコンストラクタで初期化したものだよ
357:デフォルトの名無しさん
19/08/18 21:48:35.09 FVnfIX0p0.net
>>349
keyvaluepairは構造体
構造体にはnullが存在しない
構造体にnullが存在しないことと構造体の中身がどうなっているか関係ないので、中身がクラスであるならnullにもなりうる
君がやったことは構造体ではなくその中身がnullかどうかのチェックしただけ
構造体とクラスの違いが理解できないなら今後も躓くのでkeyvaluepair含め他の構造体の使用も封印したほうがマシ
まぁintだって構造体だから全部避けるなんてことは無理だけど
358:デフォルトの名無しさん
19/08/18 22:03:37.75 0nN/LwEb0.net
くどくて性格が悪そうな文章だ
359:デフォルトの名無しさん
19/08/18 23:28:35.24 r1LRT6EBa.net
listに入れるならdictionaryでいいんじゃないか…?とか話を一切聞いてなかったりとかkeyvalue君のレス見てるといらつくし
説明してあげる>>351は優しいだろ
360:デフォルトの名無しさん
19/08/19 00:48:43.25 ODFt4ofXM.net
>>349
null返ってきたのはkeyの型(string型)の初期値がnullだからなんでねか?
361:デフォルトの名無しさん
19/08/19 02:37:59.55 s7+bDgX20.net
>>327
きも
362:デフォルトの名無しさん
19/08/19 07:49:38.46 2nNI8r3od.net
>>349
ピーマン探してnullが帰ってくるのはおかしいだろ。
ピーマン探したら見つからないのが正しくないか?
363:デフォルトの名無しさん
19/08/19 08:07:23.07 D7o3OMEzM.net
ループ作ったやつ次第のような?
364:デフォルトの名無しさん
19/08/19 10:35:33.11 VzpEDBAc0.net
Form1以外のクラスでlistboxに入力したいのですが
他クラスで入力する方法って望ましくないのですか?
他に方法はあるのでしょうか?
365:デフォルトの名無しさん
19/08/19 10:48:05.33 Le9xiHCt0.net
MVVMなら他クラスで用意するのが普通。
INotifyPropertyChangedとObservableCollectionでばっちりよ
366:デフォルトの名無しさん
19/08/19 10:55:08.87 QArCM+jpp.net
>>356
松茸採りに行っても見つからなかったらバスケットは空で帰って来るしか無いだろ?
367:デフォルトの名無しさん
19/08/19 10:55:52.73 QArCM+jpp.net
でもバスケットはあるから、バスケットの中の松茸の数がゼロになるんだよね?
368:デフォルトの名無しさん
19/08/19 11:52:38.83 2nNI8r3od.net
バスケットが空なのと、バスケットにnullが入ってるのは違うんじゃねえかな?
参照型は瓶と水みたいな感じで、瓶だけ持って帰ってこれても、
値型みたいな、それ単体が実体のものは言うとおり松茸みたいなもんで、取りにいってなかったら何も持って帰って来れないと思うが。
無理矢理何か持たせるのがFirstOrDefaultで、坊主だった親父がとりあえず当たり障りのないものを魚屋で買って帰るようなもんでは?
FirstOrDefaultは無かったときにnullを返すためにあるんじゃないんだから。
ちゃんとチェックしてから取ったほうがいいと思うよ。
369:デフォルトの名無しさん
19/08/19 12:00:12.26 ODFt4ofXM.net
ちゃんとチェックしてからとるならFirst()でよくね?
370:デフォルトの名無しさん
19/08/19 12:01:25.55 9Ob07fGvd.net
どうでもいい自分なりの思想を長々と書く人だね
371:デフォルトの名無しさん
19/08/19 12:07:05.62 ZYeDXrpNM.net
ILで説明してくれ
372:デフォルトの名無しさん
19/08/19 13:23:05.09 VzpEDBAc0.net
>>358なんですが誰かお願いします
別クラスでテキストボックスとかいじるのって普通のやり方ではないん
373:でしょうか?
374:デフォルトの名無しさん
19/08/19 13:27:26.75 ERfcd1se0.net
>>359が返してくれてるだろ
375:デフォルトの名無しさん
19/08/19 13:34:49.71 eHF4rC4A0.net
別クラスでいじるって、
class Hoge {
public void SetText(TextBox textBox, string text) { textBox.Text = text; }
}
みたいな?
コントロールを外部に渡すというのはまあ一般的ではないな
376:デフォルトの名無しさん
19/08/19 13:36:41.01 VzpEDBAc0.net
>>359
返してくださったのはありがたいんですが
その3つの単語全て知らなくて、ググってみても高度すぎてわかりません
コンソールアプリケーションをフォームアプリケーションに移植しようとしているのですが
Console.Write()で出力していたものをlistBoxやtextBoxに出力したいのですが出来なくて困っております
どうかアドバイスお願いします
377:デフォルトの名無しさん
19/08/19 13:44:13.47 9Ob07fGvd.net
外部でstringの配列なりListなり作った上でそれを
ListBox.DataSourceプロパティにセットすればいいんじゃないの
378:デフォルトの名無しさん
19/08/19 13:56:34.58 eDOlyF+5a.net
>>369
■ 選択肢1
FormにAddToLogみたいなメソッドを作ってConsole.WriteLineを
LogForm.AddToLog
■ 選択肢2
Console.WriteLineを、記録する文字列を通知するイベントに置き換える。
Formはそのイベントを拾ってListBoxに表示
後者を推奨
基本的にUIの参照を握らせるのは悪い手
379:デフォルトの名無しさん
19/08/19 14:04:49.07 VzpEDBAc0.net
移植したいコンソールアプリ
class Program
{
static void Main(string[] args)
{
var op = new Output();
op.MainProcess(400);
Console.Read();
}
}
public class Output
{
public override int MainProcess(int count)
{
for (int col = 0; col < count; col++)
Console.Write(col);
}
}
380:デフォルトの名無しさん
19/08/19 14:06:13.39 VzpEDBAc0.net
作ってみたフォームアプリ
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
var op = new Output();
op.MainProcess(400);
}
}
public class Output
{
public override int MainProcess(int count)
{
for (int col = 0; col < count; col++)
listBox1.Items.Add(col);//←ここが動かない
}
}
こんな感じです
>>371
ありがとうございます。さっそく試してみます
381:デフォルトの名無しさん
19/08/19 15:32:03.08 ERfcd1se0.net
なんでいきなりバックグラウンドワーカーが出てきてるか知らんけど、ドゥーワークは別スレッドで実行する内容を記載するところで、UIスレッドにアクセスしたらダメ→コントロールを触ったらダメ
リストボックスにアクセスしたかったらリポートプログレスもしくはコンプリートでUIスレッドにマーシャリングしてから
382:デフォルトの名無しさん
19/08/19 16:32:24.93 VzpEDBAc0.net
簡略化して書いていますが凄い長い計算なので計算中でもプログラムが反応する様にbackgroundWorkerにしています
backgroundWorkerかでなくとも、他クラスからフォームをいじるということが出来なくて困っています
383:デフォルトの名無しさん
19/08/19 17:09:34.09 2nNI8r3od.net
普通にinvokeしなよ。
384:デフォルトの名無しさん
19/08/19 17:49:40.07 VD+/iXFd0.net
>>375
1.他のフォームからコントロールを操作する
URLリンク(dobon.net)
2.BackgroundWorkerからコントロール(UIスレッド)を沿操作する
URLリンク(dobon.net) またはInvoke
今の段階では1+2をやりたいんだよね
設計的なものに口だすのは良くないけど参考までに
>凄い長い計算なので計算中でもプログラムが反応する様に
ListBoxの一つのアイテムごとに時間がかかるのならMainProcessでループで一気にAddせずに
BackgroundWorkerの中で「計算実行→ReportProgressで別フォームListBoxにAdd」をループさ
385:せてもいいんじゃないの
386:デフォルトの名無しさん
19/08/19 17:55:50.15 V7QYb24CM.net
>>366
ログ出したいん?
なんかプロパティのフラグ立てる必要なかったっけ?
387:デフォルトの名無しさん
19/08/19 18:04:30.50 V7QYb24CM.net
関係なかった
自分が昔出なかったのは
AppendTextしてなかったからだったw
すまんかった
388:デフォルトの名無しさん
19/08/19 20:31:39.57 VzpEDBAc0.net
Invoke調べてみました。いけそうな気がしますが書き方が難しいです
上記のコードの場合どのように記述すれば良いのでしょうか?
389:デフォルトの名無しさん
19/08/19 20:43:11.70 y72D5AUNp.net
>>380
ここおススメやぞ
URLリンク(blogs.msdn.microsoft.com)
390:デフォルトの名無しさん
19/08/19 20:46:44.95 cJsYlnhia.net
パッと見で適当だけど、formにコントロールの変更記述して、コールバック登録してtaskはしらせればいいの違うのか?invokeは当然
391:デフォルトの名無しさん
19/08/19 21:00:04.04 Vps+pUHe0.net
>>380
delegate用のメソッド作ってdelegateにセットしてinvoke
URLリンク(www.atmarkit.co.jp)
392:デフォルトの名無しさん
19/08/19 22:54:50.46 aQCsW5pK0.net
doubleって整数のほうに偏りがあったら
小数部分は短い精度になるんですが、これ何とかなりませんか?
doubleは精度高いから小数点第5位とか精度余裕だろwwwwwwwwwww
989~~~132.1235212596 算出結果
989~~~132.1235312314 正解
え???????????
ちょwwwwww
助けてください
393:デフォルトの名無しさん
19/08/19 23:06:59.10 eDOlyF+5a.net
>>384
何を言ってるか人に分かるように書かないと誰も答えようがないよw
一般論として、演算誤差を累積させずに
演算可能かどうかはどういう演算をしてるかによるので、
具体的な処理が分からないと何とも言えん
394:デフォルトの名無しさん
19/08/19 23:27:14.16 9Ob07fGvd.net
decimal型使えば
395:デフォルトの名無しさん
19/08/19 23:36:21.05 0KlGy2IO0.net
>>384
浮動小数点とはそういうもの
小数点以下何桁かではなく全体で何桁か
396:デフォルトの名無しさん
19/08/19 23:57:36.54 0eZQgVij0.net
分数型クラスを自分で作ってとっとけ
397:デフォルトの名無しさん
19/08/19 23:59:07.58 HKOIeNMl0.net
Seleniumを極めよう
398:デフォルトの名無しさん
19/08/20 00:07:25.79 VMXKYR4od.net
Form1, Form2, CounterForm があります。
CounterForm にカウントを表示して、0 になったら、Form1 か Form2 のメソッドを実行するにはどうしたら良いでしょうか?
やりたいこと
5. 4. 3. 2. 1. 0 と表示 → form1.DoSomething();
CounterForm と Form1 の部分はできているのですが、
複数class間で通知する方法がよくわかりません。
399:デフォルトの名無しさん
19/08/20 00:22:58.41 sL7gwS880.net
>>390
var f1 = new Form1();
var f2 = new From2();
foreach(var i in Enumerable.Range(0, 5).Reverse())
{
await Task.Delay(1*1000);
if(0 == i)
f1.DoDomething();
// f2?
}
Form1とForm2のメソッド呼び分け条件を提示して。
あと
>複数class間で通知する方法がよくわかりません。
の意味が分からないんでもう少し詳しく
400:デフォルトの名無しさん
19/08/20 01:06:30.58 yjnOK/Bv0.net
「通知」…もし表示済みのフォームをあとからいじりたい場合、
public static class static1 {
public static form1 form1; //スタティッククラスのフィールドを用意して、
-------------------------------------
public partial class form1 : Form {
public form1() {
static1.form1 = this; //各自のインスタンスを各自のコンストラクタで設定しておく
-------------------------------------
public partial class CounterForm : Form {
public void hoge() {
try {
Exception er = null;
this.Invoke( (MethodInvoker)delegate { //デリゲートせずに外からフォームをいじるとエラーになることがある
try {
static1.form1.DoSomething(); //スタティッククラスのフィールドを経由すると表示済のものがいじれる
} catch( Exception e ) { er = e; } //ちなみにデリゲート内のエラーは外側でキャッチできないので、
} );
if( er != null ) { throw er; } //変数を経由して外側でスローする
401:デフォルトの名無しさん
19/08/20 01:15:05.72 zheL5RcIa.net
>>390
Formだろうが何だろうが、操作したい側が操作対象の参照を握れば良いだけだけど、
親子関係が成立しているとか特殊な前提がなければ、Formが別のFormの参照を
握るのはあんまり良くない。
原則論を言えばそもそもFormにUIと無関係の処理を書く時点で間違っている。
402:デフォルトの名無しさん
19/08/20 07:52:56.91 yjnOK/Bv0.net
UIと関係あるからフォームなんだろうけど…
非同期処理中にポップアップが出て、その間もメインは触れるが、終わるとメインが変更される
なんてことはよくある
書式設定的なのも別フォームから別フォームをいじるわけだし
前のいじり方を残すために、閉じても隠すだけで、同じインスタンスを再表示したい場合とか
403:デフォルトの名無しさん
19/08/20 09:26:58.30 +NAZ1HN+M.net
フォームと無関係な~って書いてあるぞ
そんなことより全角半角がきもい
404:デフォルトの名無しさん
19/08/20 12:03:48.15 NghMzgaN0.net
対象のフレームワーク:Framework 4.0 でコンパイルした自作 DLL があります。
この DLL を 対象のフレームワーク:Framework 4.8 なプロジェクトから参照して使用したとき、
DLL の中はどっちで動くのでしょうか?
たとえば自作DLL内で、DataGridView から継承した DataGridViewEx を作ってあったとして
これを 4.8 なプロジェクトで利用したとき、DataGridViewEx 内で
4.0 の DataGridView が使われるのか、4.8 の DataGridView が使われるのか、って意味です。
405:デフォルトの名無しさん
19/08/20 12:10:21.33 mC8iPjWhd.net
自作DLL内でDataGridViewの参照を特定バージョンにしておけば4.0になるしそうじゃなければ4.8
406:デフォルトの名無しさん
19/08/20 12:17:12.47 NghMzgaN0.net
自作DLL 側の System.Windows.Forms を見たら
特定バージョン:false
になっていたので、呼ばれる側のバージョンの System.Windows.Forms.dll が使われるってことですね。
Framework 4.8 用に新たに作らないといけないかと思ったのですが、その心配ないみたいで安心しました。
407:デフォルトの名無しさん
19/08/21 00:27:12.96 7whQ/iRu0.net
あ、間違えた
× this.Invoke( (MethodInvoker)delegate {
〇 static1.form1.Invoke( (MethodInvoker)delegate {
(thisは自フォーム内のマルチスレッド部分のソースだった)
カウントダウンにマルチスレッドが必要とは限らんが
むしろモーダルだったり
でも「オブジェクトがあれば必ず「通知」できる」という方法は確立しといた方が、オブジェクト指向っぽい
クラスオブジェクト指向の前にメッセージオブジェクト指向があったので(Win32API)
メッセージ、つまり「通知」
408:デフォルトの名無しさん
19/08/21 00:57:19.98 CGK7jfA0d.net
>>392
解答どうもありがとうございます。
event かデリゲートで解決できそうです。
// Form1
private void CountDownBtn_Click(object sender, EventArgs e) {
var countdownForm = new MYCountDownForm();
// 4 3 2 1 0と表示してから、下に行きたいが、
// これだとカウント 0 を待たずにすぐ下に行く。
countdownForm.Show();
// このクラスのいろいろな処理
}
409:デフォルトの名無しさん
19/08/21 01:36:11.80 7whQ/iRu0.net
>>400
そっちかw
そっちは「モーダルフォーム」でググると出てくると思う
その方が普通に基本
410:デフォルトの名無しさん
19/08/22 16:28:36.46 tih7LC2d0.net
APIが公開されていなくてもスクレイピングして非公開websoketに接続したいのですが、
解析からトークンなど必要なheader情報取得すればできるものですか?
411:デフォルトの名無しさん
19/08/22 16:50:43.33 xQsiKIbM0.net
出来るけど利用規約読め
API経由だとセーフで
API経由しないと逮捕とか書いてあるから
412:デフォルトの名無しさん
19/08/22 16:57:22.84 erkZnaOI0.net
>>402
URLリンク(elaws.e-gov.go.jp)
413:デフォルトの名無しさん
19/08/22 17:10:49.32 NpAwFZ6qM.net
>>404
条文ぐらい示してやれよ
414:デフォルトの名無しさん
19/08/22 17:59:59.30 90PkXrDL0.net
色んなところで迷惑なヤローだな
415:デフォルトの名無しさん
19/08/22 21:54:01.43 rNXeNA230.net
>>402
非公開だろうがクライアント側で処理してるのには変わりないんだから
お前が本当にブラウザになり切れればやれるよ
単純に能力と手間の問題だ
416:デフォルトの名無しさん
19/08/22 22:05:00.16 yaxmcT7W0.net
この質問結構前からいたるところで見る気がするんだけどただのマルチ?
417:デフォルトの名無しさん
19/08/22 23:55:52.03 W1llczT4d.net
>>400 >>401
とりあえず自力でできたのでソース抜粋 1
// Form1 呼び出し側
private void CountDownBtn_Click(object sender, EventArgs e){
var countDownForm = new MYCountDownForm(7);
countDownForm.ZeroReached += OnCounterZeroCallBack;
countDownForm.Show();
}
// コールバック
private void OnCounterZeroCallBack(Object sender, DestReachedEventArgs e){
// UI 更新
}
418:デフォルトの名無しさん
19/08/23 00:00:27.51 RwBPjFxxd.net
ソース抜粋 2 // MYCountDownForm
private System.Windows.Forms.Timer countDownTimer;
public int timeLeft;
public delegate void ZeroReachedEventHandler(Object sender, ZeroReachedEventArgs e);
public event ZeroReachedEventHandler ZeroReached;
void Timer_Tick(object sender, EventArgs e){
if (timeLeft >= 1){
timeLabel.Text = this.timeLeft.ToString();
timeLeft--;
}
else if (this.timeLeft <= 0){
timeLabel.Text = this.timeLeft.ToString();
var args = new ZeroReachedEventArgs();
args.TimeReached = DateTime.Now;
OnDestReached(args);
this.Close();
}
} // END Timer_Tick
protected virtual void OnZeroReached(ZeroReachedEventArgs e){
var handler = ZeroReached;
if (handler != null){ handler(this, e); }
}
}
public class ZeroReachedEventArgs : EventArgs {
// コンストラクタないけどいいの?
public DateTime TimeReached { get; set; }
}
419:デフォルトの名無しさん
19/08/24 00:16:35.07 EZ15JXYo0.net
アホな質問ばっかですいません
光速の計算をしたいんですが、doubleでは無理ですか?
decimalは使いません
お願いします。小数点以下が信用できません。
420:デフォルトの名無しさん
19/08/24 00:22:03.18 ka7Yl/470.net
>>411
お前さんが使おうとしている計算方法や欲しい精度とか示さんと答えられんだろうよ
421:デフォルトの名無しさん
19/08/24 01:21:02.23 g8XGZa5Z0.net
>>411
422:デフォルトの名無しさん
19/08/24 08:41:25.65 VP6gB9DD0.net
質問いいですか、クラスの処理の途中経過をTextboxのコントロールに送りたいのです
public partial class Form1 : Form
{
Class1 class1 = new Class1();
}
class Class1
{
public Class1()
{
Form1.Textbox1.AppendText("Class1を実行しています");
}
}
このようにしてもForm1のインスタンスがないから実行できません
みなさんはクラスのログなどをテキストボックスに送るとき、どう書かれてますか?
423:デフォルトの名無しさん
19/08/24 09:03:40.17 BNVmeU2m0.net
>>414
public partial class Form1 : Form
{
public TextBox Textbox1;
Class1 class1 = new Class1(this);
}
class Class1
{
public Class1(Form1 fm)
{
fm.Textbox1.AppendText("Class1を実行しています");
}
}
またはFom1のなかに
public void appenttext(string st)
{
Textbox1.AppendText(st);
}
としてClass1から呼び出す
424:デフォルトの名無しさん
19/08/24 15:23:44.45 VP6gB9DD0.net
>>415
レスさんくすです
上の方法でうまくいきました
クラスからコントロールを操作ってあまり使わない、というか推奨されてないのかな?
425:デフォルトの名無しさん
19/08/24 15:40:00.64 glPHIee0p.net
コントロールは何かを操作する為の機能なんだから、
普通はその操作する何かを直接操作するだろ?
426:デフォルトの名無しさん
19/08/24 15:45:48.43 BNVmeU2m0.net
>>416
インスタンスをどう指定していいかわからないんじゃなかったのか
親子関係にあるウィンドウでの操作はいろんなアプリで普通にあるし
C#だけにしても「C# 別のフォームのコントロール」でググればやっているところはいっぱい出てくる
427:デフォルトの名無しさん
19/08/24 15:56:01.09 dsz+mirUa.net
>>416
非推奨というか、普通はやりたいと思わないね。
何かの参照を握るってことはそれに依存してしまうってことだから。
Class1は本来はForm1の参照を持つ設計にしたことで、
事実上そのプログラム専用の他で流用できないコードになってる
他で使う予定ないからそれで問題ないと思うかもしれないが(以下略
428:デフォルトの名無しさん
19/08/24 19:37:50.96 VP6gB9DD0.net
>>417
確かにコントロールというぐらいだし
>>418
さんくす、実際にやる方法もわからなかったし、教えてもらったのはわかりやすかった
考え方を標準っぽいやり方に寄せたいのです
>>419
さんくす、なるほどパーツとして完成してないですね
汎用性の低いコードは改善しないと、でも今回はこれでいきます
logの取り方考えないと
429:デフォルトの名無しさん
19/08/24 21:52:23.83 PMKXSgkW0.net
処理側に出力するだけの意味しかないデリゲートでも渡してやれば?
受け側はコントロールを操作とか意識しなくて済むけど
public partial class Form1 : Form {
:
Class1 class1 = new Class1((string s) => { this,Textbox1.AppendText(s); })
;
}
class Class1 {
delegate void output_delegate(string s);
output_delegate output = (string s) => { Console.WriteLine(s); }; //デフォルト出力先はコンソール
:
Class1(output_delegate _output) {
output = _output;
}
:
}
430:デフォルトの名無しさん
19/08/24 22:59:49.50 sQirZTQZ0.net
よく答えられるな
なにをしようとしてるのかすらわからんわ
431:デフォルトの名無しさん
19/08/24 23:07:54.21 VP6gB9DD0.net
>>421
レスさんくすです
でもしかし、半分ぐらいしか理解できませんでした、スイマセン
~解読中~
432:デフォルトの名無しさん
19/08/24 23:11:33.91 XZUr8QhOa.net
refやout, in引数のないdelegateなら
自分で定義せずにSystem.ActionやSystem.Funcを使う手もあるよ
433:デフォルトの名無しさん
19/08/24 23:15:15.44 dsz+mirUa.net
>>423
理解しなくていいよw
デリゲートを直で受け渡しなんかせず、素直にイベントの方を使いましょう。
434:デフォルトの名無しさん
19/08/24 23:54:17.30 GocaxRhS0.net
>>422
さすがにそれはお前がアホやで
435:デフォルトの名無しさん
19/08/24 23:56:09.98 4OMYNXZ10.net
使う手もあるというか余程じゃなければActionかFuncでは
436:デフォルトの名無しさん
19/08/25 00:04:50.89 dkxX1jtZ0.net
俺もActionを推す
437:デフォルトの名無しさん
19/08/25 00:26:08.77 DAHO6xPV0.net
MethodInvoker(´・ω・`)ボクも忘れないでね
438:デフォルトの名無しさん
19/08/25 06:55:23.52 Jlb1UCj1M.net
>>414
こういうのってbindingでどうにかするものじゃないの?
439:デフォルトの名無しさん
19/08/25 07:21:22.29 UfI3Un4o0.net
可変長の戻り値って実現できませんか?もしくは可変長のタプル
これを
public void hoge<T>(List<T> list, Func<T, string[]> selector) { ... }
hoge(list, listItem => new string[2] { listItem.A, listItem.B });
hoge(list, listItem => new string[3] { listItem.A, listItem.B, listItem.C });
↓
public void hoge<T>(List<T> list, Func<T, params string[]> selector) { ... }
hoge(list, listItem => (listItem.A, listItem.B));
hoge(list, listItem => (listItem.A, listItem.B, listItem.C));
こんな風に書けたらいいのにって感じです
440:デフォルトの名無しさん
19/08/25 09:33:25.01 NieUwdLz0.net
>>424
さんくす、スマートに書けそうですね、他の人もさんくす、ただ考え中
>>425
今回はイベントで、ただデリゲート勉強するいいちゃんす
>>429
さんくす、ググったら実現したいことをピンポイントっぽい
>>430
さんくす、binding、さらにむずい、今までと違うアプローチっぽい
441:デフォルトの名無しさん
19/08/25 13:39:47.35 aNsJH+ura.net
>>431
何言ってるのか理解するのに5分かかったw
ラムダ式の右辺(?)の評価方法をジェネリックの型パラメータを確定する場面で指定するとか
普通に無理筋でしょう
hoge(list, listItem => new[] { listItem.A, listItem.B });
が
hoge(list, listItem => (listItem.A, listItem.B));
と書けたところでたいして嬉しいと思えんけど
442:デフォルトの名無しさん
19/08/25 14:04:21.51 UfI3Un4o0.net
>>433
おお、new[]で推論してくれるの忘れてました
new[]で十分スマートですねこれで問題ないです、ありがとうございました
443:デフォルトの名無しさん
19/08/25 22:03:25.03 4LqybIGY0.net
Formのプログラムで普通に動作してたOpenFormDialogを使ってる箇所が突然フリーズしてしまいます。
一旦そうなるとWindows自体が不安定になり、他のプログラムで恐らくOpenFormDialogを使ってる所が全てフリーズしOSの再起動が必要になります。
どんな要因が考えられるでしょうか。
プログラムはかんたんなグラフィックエディタで矩形やテキストを移動したり変形する程度です
444:デフォルトの名無しさん
19/08/25 22:12:11.72 hYfvTIib0.net
OpenFormDialog? OpenFileDialogじゃなくて?
OpenFileDialogならフリーズの話はあるから検索して
騒がれたのもう結構前だからまだ残ってるともあんまり思えないけど
445:デフォルトの名無しさん
19/08/25 22:13:53.33 hYfvTIib0.net
あ、残ってるってのはフリーズするバグを残してる環境の話ね
446:デフォルトの名無しさん
19/08/26 00:35:03.80 D54D8pf80.net
>>436
OpenFileDialogでした
cymon.sysの件は見つけましたけど家のPCにはありませんでした
地道にバグを見つけます
447:デフォルトの名無しさん
19/08/26 01:40:22.77 YZSrPKBs0.net
List<Employee> のIDとList<int> の一致するEmployeeを取得したいです。
List<int>をforeach、その中でList<Employee>をFirstOrDefaultで探して
新たなList<Employee>にAddする方法はできました。
これのforeachを撲滅して簡潔に書きたいのですがいい方法はありますか?
448:デフォルトの名無しさん
19/08/26 01:54:35.76 XYz1A7/c0.net
var employees = new List<Employee>();
var ids = new List<int>();
・・・・
var hitEmployees = employees.Where(employee => ids.Where(id => id == employee.id).Any()).ToList();
449:デフォルトの名無しさん
19/08/26 05:09:56.54 d+oJYvyp0.net
employees.Join(ids, _emp => _emp.ID, _id => _id, (_emp, _id) => _emp)
joinはクエリ構文の方が読みやすいな
from emp in employees join id in ids on emp.ID equals id select emp
450:デフォルトの名無しさん
19/08/26 06:09:07.86 LiZWIy1C0.net
Find
451:デフォルトの名無しさん
19/08/26 07:20:31.54 H4cvWJOz0.net
employees.FindAll(emp => ids.Contains(emp.ID))
452:デフォルトの名無しさん
19/08/26 08:56:15.22 WqA3OufOM.net
EnumSetってEnumの値を2のベキにすればいいから存在しないの?
453:デフォルトの名無しさん
19/08/26 11:40:26.35 Rhz6dR8od.net
イベントハンドラのいなづまアイコンってどういう意味なの?
気になって開発が手につきません。
454:デフォルトの名無しさん
19/08/26 12:01:50.23 EHOEsFfWa.net
地下鉄漫才かよw
455:デフォルトの名無しさん
19/08/26 16:00:24.81 7fzFkpCMr.net
execute
神がいかずちをもって手を下す
的な
456:デフォルトの名無しさん
19/08/26 22:32:00.17 YZSrPKBs0.net
>>440-443
どれもなるほど!と勉強になりました
ありがとうございます
今回はシンプルな>>443さんのでいきます!
457:デフォルトの名無しさん
19/08/27 07:54:15.38 wbq0Lfqra.net
おお、なるほど。LINQのクイズ集があれば面白そうだな。
458:デフォルトの名無しさん
19/08/27 08:59:40.07 S6vHFDx3d.net
443はlinqじゃないぞ
2.0の頃からあるListクラスのメソッドだけだ
459:デフォルトの名無しさん
19/08/27 10:18:31.48 AUeyxvTx0.net
>>450
ラムダ式が使えるようになったのはC#3.0から
460:デフォルトの名無しさん
19/08/27 11:47:29.33 S6vHFDx3d.net
>>451
そうそう。なのでデリゲート使って書く必要はあるけど
461:デフォルトの名無しさん
19/08/27 19:15:36.40 4aKZbpn00.net
次のようなことをしたいのですが、どうすればいいでしょうか。
async、awaitを使えばいいようにも思えたのですが、クラス内のループが止まらず・・・
1.ボタン押下でとある処理をするクラスのインスタンスを生成し、クラス内で処理を無限ループ
2.ボタン押下でクラス内のループを停止
462:デフォルトの名無しさん
19/08/27 19:21:08.99 a3Zgv65M0.net
>>453
ループさせているクラス内に止めるメソッド付けてボタン押したときにそれ呼び出せばいいだけでは
イベントメソッドは別のクラスでもできるから直にボタンのイベントに追加してもいいし
463:デフォルトの名無しさん
19/08/27 20:10:30.11 2XS9VBdia.net
CancellationTokenSourceを使うのが比較的妥当なやり方かな
2でボタンを押したらcancellationTokenSource.Cancel()
無限ループ側の処理では適宜cancellationToken.ThrowIfCancellationRequested()
464:デフォルトの名無しさん
19/08/27 20:56:45.60 LqXN8ItS0.net
低レベルな実装だと終了フラグの参照を渡しておくとか
465:デフォルトの名無しさん
19/08/27 21:11:30.63 fYPVnhP50.net
>>455
単純なループ処理でキャンセル例外が必要なければ
CancellationToken.IsCancellationRequestedをチェックするのでも良いね
466:デフォルトの名無しさん
19/08/27 21:12:50.98 4aKZbpn00.net
皆さん、ご回答ありがとうございます。
>>454
停止メソッドにより、ループ条件から外れるフラグを立てて
処理停止させるイメージでしょうか。
>>455
CancellationTokenSource初めて聞きました。
便利ですね!
>>456
すみません。フラグでの終了処理しか思いつきませんでした・・・
もう少しマシな実装になるとどうなるのでしょうか。
教えてもらえると助かります。
467:デフォルトの名無しさん
19/08/27 21:26:09.47 4aKZbpn00.net
>>457
そういった方法もあるのですね。ありがとうございます。
468:デフォルトの名無しさん
19/08/27 22:06:20.98 GZd8Fc/Qp.net
無限ループなんか組むな。
469:デフォルトの名無しさん
19/08/27 22:40:07.64 4aKZbpn00.net
すみません・・・
あるフォルダにファイルが保管されたときに
そのファイルを処理したくて監視に無限ループを使ってしまいました。
他に良い方法があれば、お教え願えないでしょうか。
470:デフォルトの名無しさん
19/08/27 22:43:30.90 4WMOl80S0.net
>>461
System.IO.FileSystemWatcher
471:デフォルトの名無しさん
19/08/27 22:46:14.03 4WMOl80S0.net
もしくは、win32ApiのFindFirstChangeNotification()か
472:デフォルトの名無しさん
19/08/27 22:46:46.91 4aKZbpn00.net
>>462
そんな便利なものまであるんですね!びっくりしました!
全然C#のこと知らなくて恥ずかしいです・・・
教えてくださってありがとうございました。
473:デフォルトの名無しさん
19/08/28 09:31:28.37 jmHHdju80.net
自分はC#といえば当たり前のようにWindowsFormでやってたけど
みんなは何使ってるの?
474:デフォルトの名無しさん
19/08/28 11:09:54.59 xlt6w80MM.net
>>465
特に必要なければwinform
というか、初期のブレンドが使い物にならなかったので、WPFやUWP?は必要になるまで覚えないことにした
475:デフォルトの名無しさん
19/08/28 11:18:52.44 kf58t1t/0.net
WinformからUWP APIを呼び出すことも出来るしな
476:デフォルトの名無しさん
19/08/28 12:01:00.80 nq/8XfUOM.net
WPFでやってるけど誰かにお勧めしたことはないしとてもお勧めできない
477:デフォルトの名無しさん
19/08/28 12:10:35.61 biFO59Yua.net
>>465
Winformなプロジェクトだが、XAMLでのレイアウトが好きだから自分の担当画面はWPF使ってる
478:デフォルトの名無しさん
19/08/28 12:29:45.46 XsRrDAKXd.net
>>465
ASP.NET Core
479:デフォルトの名無しさん
19/08/28 12:34:32.95 in2U0t2Ud.net
>>465
WinFormsやらWPFやらXamarin
480:デフォルトの名無しさん
19/08/28 14:05:53.46 xlt6w80MM.net
>>465
アンカーやドック追加してくれたのが嬉しすぎて、他に浮気してまで新たに覚える気にならないってのもあるかな
481:デフォルトの名無しさん
19/08/28 20:18:04.95 h4zgSqGZd.net
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
アクティブウィンドウのクライアント領域を取得するにはどうすればいいでしょうか?
上のメソッド使えば行けそうなんだけど、行き詰まってます。
482:デフォルトの名無しさん
19/08/28 20:23:25.50 7/MPDbwD0.net
C#関係ない
483:デフォルトの名無しさん
19/08/28 20:39:43.87 j6ZvHlbE0.net
>>473
それはアクティブになっているウインドウのハンドルを返すだけのもの
URLリンク(docs.microsoft.com)
RECTの構造体は自分で用意して上のURLではポインタが引数になっているけどC#なら
[DllImport("user32.dll")]
private static extern int GetClientRect(IntPtr hwnd, ref RECT Rect);
みたいに構造体をrefかoutで指定したらそこに戻ってくる
484:デフォルトの名無しさん
19/08/28 23:28:13.40 1vTqziPj0.net
c#楽しいね
直感ですぐGUIアプリ作れるからプログラミング覚えたいけど特に目標がないって人にはc#一択だと思う
485:デフォルトの名無しさん
19/08/28 23:50:51.61 RWMmexzc0.net
>>475
ほぼそのまんまのサンプルを見つけて問題はとりあえず解決しました。
URLリンク(ja.stackoverflow.com)で指定した別プロセスのウインドウを-クライアント領域のみキャプチャしたい
アクティブウィンドウのクライアント領域の取得は、
c# + netframework ではできないのですか?
486:デフォルトの名無しさん
19/08/29 00:27:03.61 yP1vALXb0.net
できるよ
お前には一週間早い
487:デフォルトの名無しさん
19/08/29 01:19:09.27 wYLP5dcN0.net
次はListViewの要素の長方形を得たいとかかな
結局.netからは離れていきそう
488:デフォルトの名無しさん
19/08/29 01:53:51.70 KY//KYCr0.net
TreeViewの表示を標準の
項目1
┗項目2
┣項目3
┗項目4
から、
項目1━項目2┳項目3
┗項目4
にするにはどうすればよいでしょうか?
489:デフォルトの名無しさん
19/08/29 01:59:31.63 AZY1Uw460.net
owner draw
490:デフォルトの名無しさん
19/08/29 02:11:15.91 HoxlVuhE0.n
491:et
492:デフォルトの名無しさん
19/08/29 07:51:27.50 JXiDsy0oa.net
>>473
GetActiveWindow()って無かったっけ?
493:デフォルトの名無しさん
19/08/29 07:52:24.70 JXiDsy0oa.net
↑ああ、早とちり
494:デフォルトの名無しさん
19/08/30 21:10:43.61 euEksp6k0.net
ドラッグアンドドロップで拡張子を.txt→.jsonに変更するプログラムのコードをください
495:デフォルトの名無しさん
19/08/30 21:15:43.51 a95S+czO0.net
batでやったほうが早そうなレベルだけど
fileをrenameするだけでしょ?
496:デフォルトの名無しさん
19/08/30 21:18:37.15 euEksp6k0.net
renameするだけですね
どうしてもC♯でやりたいんです
497:デフォルトの名無しさん
19/08/30 21:30:48.63 m5yHWiCc0.net
>>487
拡張子の書き換えは
System.IO.Path.ChangeExtension(filepath, extension)
ここはコードを代わりに書くスレじゃないのでキーワードはあるのだから後はググってください
498:デフォルトの名無しさん
19/08/30 21:39:06.95 euEksp6k0.net
一日ググってもわからなかったので聞きに来ました
499:デフォルトの名無しさん
19/08/30 22:13:39.42 LYP1s7Gj0.net
誰が一日ググれば聞いていいって言ったんだよ
ひと月はググれ
500:デフォルトの名無しさん
19/08/30 22:15:07.21 gOJh05ROp.net
>>488
それだけじゃ変数領域にあるファイル名しかリネームされてない予感
501:デフォルトの名無しさん
19/08/30 22:16:45.05 5knN0MFU0.net
むしろググる以外のことをしろ
一日やったらわかったこととわからんとこぐらいあるだろ
502:デフォルトの名無しさん
19/08/30 22:17:38.29 a95S+czO0.net
どこがわからなかったのかくらい書いてくれないと説明できんよ
ドラッグアンドドロップの受け取り方?
拡張子の変え方?
コンソールアプリなの?デスクトップアプリなの?
503:デフォルトの名無しさん
19/08/30 22:22:42.01 euEksp6k0.net
URLリンク(www.ipentec.com)
URLリンク(dobon.net)
ここの二つのサイトを参考にして組み合わせれないかと色々やってみたんですけどうまくいかないんですよね
それぞれ片方ずつならうまく動きます
504:デフォルトの名無しさん
19/08/30 22:27:14.34 a95S+czO0.net
上手く行かないとは何かを説明して
コンパイルできない?エラーが出る?例外が出る?
実はmoveできてるけど別のフォルダに作ってるとかないよね?
505:デフォルトの名無しさん
19/08/30 22:27:46.98 Eq4lHDlT0.net
答えが出てるから色々試そうぜ
あと1日試してやり方がわからないのなら
>>1にある
>■コードを貼る場合は↓を使いましょう。
>URLリンク(ideone.com)
>URLリンク(dotnetfiddle.net)
にコードを張ってここからどうやれば良いかを聞いてくれ
506:デフォルトの名無しさん
19/08/30 22:47:12.10 euEksp6k0.net
URLリンク(ideone.com)
これで貼れてますか?フォームアプリケーションです。
ここの57行目のファイルのパスをドラッグアンドドロップして得たパスに変更したいんですけどうまくいかないんですよね
507:デフォルトの名無しさん
19/08/30 22:58:41.75 m5yHWiCc0.net
>>497
private void Form1_DragDrop(object sender, DragEventArgs e)
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false);
for (int i = 0; i < files.Length; i++)
{
string fileName = files[i];
textBox1.Text += fileName + "\r\n";
System.IO.File.Move(fileName, System.IO.Path.ChangeExtension(fileName, "bak"));
}
}
これでいいでしょ
ボタンクリックでやりたいのならフィールドでファイルパス持たないと
508:デフォルトの名無しさん
19/08/30 23:12:12.27 euEksp6k0.net
>>498
できました、ありがとうございます
こんな簡単だったんですね・・・・・・
509:デフォルトの名無しさん
19/08/30 23:59:42.45 Nv4TyFgP0.net
>>498
重箱の隅で本質とは関係ないけど、
"\r\n"はEnvironment.NewLineの方が良いな
510:デフォルトの名無しさん
19/08/31 00:15:27.52 yACTwzu40.net
テキストボックスのテキストも環境の影響受けるんか?
おれは環境によらず出力一定のほうが安心する
511:デフォルトの名無しさん
19/08/31 00:24:05.20 8S6g8PTE0.net
どちらかと言うと定義済みの定数としてだな
512:デフォルトの名無しさん
19/08/31 02:02:25.00 XD/oUD8U0.net
コンソールとGUIの改行が同じという保証なんて無いんだが
513:デフォルトの名無しさん
19/08/31 04:03:11.60 5bIs7pBL0.net
>>503
同意
514:デフォルトの名無しさん
19/08/31 08:13:13.94 auI6O9iK0.net
JSONを扱いたいのですが.NET標準機能では
JSON.NETにあるJsonPropertyのような変数名とは別の名前で
出力できるような機能は無いでしょうか?
515:デフォルトの名無しさん
19/08/31 08:26:54.85 /xXRK3gd0.net
>>505
DataContractJsonSerializer使って
[DataMember(Name="別の名前")]
とか?
516:デフォルトの名無しさん
19/08/31 08:38:53.92 auI6O9iK0.net
>>506
うぉぉぉ
できました。ありがとうございます!
517:デフォルトの名無しさん
19/08/31 15:26:10.82 pxkHJ9ge0.net
クロームにURL開かせるプログラムって作れるのかな
518:デフォルトの名無しさん
19/08/31 15:34:24.66 pxkHJ9ge0.net
標準ブラウザで開くのがありました
519:デフォルトの名無しさん
19/08/31 17:12:50.00 3HNIz5om0.net
引数にURLを入れて起動すればいいんじゃない?
やったことないけど
520:デフォルトの名無しさん
19/08/31 18:30:37.90 OVCgKeDNa.net
headlessでできるよー
521:デフォルトの名無しさん
19/08/31 18:34:41.41 lSinYyRY0.net
>>510
どんなブラウザでも、標準でそうなってる(べき)と思ってる。meも
522:デフォルトの名無しさん
19/08/31 20:59:16.96 DOQSWUJb0.net
start url
って叩きゃ標準ブラウザが立ち上がるでしょ
引数ってブラウザのexeパス調べてそこに渡すの?
OSが知ってんだからOSにぶん投げればいいだけじゃん
523:デフォルトの名無しさん
19/08/31 22:02:09.86 3KJgwSNk0.net
>>508
Seleniumだな、それこそ。
524:デフォルトの名無しさん
19/09/02 13:12:29.24 x5YZ9uix0.net
Span<T>をコレクションに貯める事って出来ないんでしょうか?
受け取ったbyte[]から一部のみを必要としていますが、startIndexとlengthを一々記録するのも面倒であるため、現状は新たにnew byte[length]を作りコピーをして貯めています
別にこれでも全く困っていませんが、あんまりスマートではない気がしているので元のbyte[]を.AsSpan(startIndex, length)したものをコレクションに貯められればスッキリするのですが
525:デフォルトの名無しさん
19/09/02 13:30:51.46 DTXhuRLF0.net
できないよ
array[3..7]とかでSliceするとか元の配列を使うならArraySegment<T>使うとか
526:デフォルトの名無しさん
19/09/02 14:07:32.18 /BuOMso5a.net
へーSpanってそんな制約があるのか知らんかった
URLリンク(stackoverflow.com)
527:デフォルトの名無しさん
19/09/02 14:41:25.59 ZSYwkq3t0.net
>>508
例えば、Ruby, Selenium Webdriver なら、
下のファイルを、test.rb とすると、端末で、
ruby test.rb "ここにURL"
と入力すると、引数がARGV[0] に入ってくる
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
options.add_argument('--disable-gpu')
driver = Selenium::WebDriver.for :chrome, options: options
driver.navigate.to ARGV[0] # URL
528:デフォルトの名無しさん
19/09/02 17:47:47.05 btOIY8sya.net
>>515
MemoryExtensions.AsMemory()を経由してSystem.Memory<T>を管理するのはどう?
529:デフォルトの名無しさん
19/09/02 22:24:59.33 yMcQzedZ0.net
>>518
C#で書かないならスレチ
530:デフォルトの名無しさん
19/09/03 00:14:45.15 nBDYMOwL0.net
なんで突然ruby?
531:デフォルトの名無しさん
19/09/03 00:20:55.08 UWVASv0T0.net
>>521
ソイツはいくつかのスレタイにRuby禁止といれることになった元凶だから、考えるだけ無駄よ