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

■ このスレッドは過去ログ倉庫に格納されています
2019/05/16(木) 19:28:06.27ID:s+6oZKe00
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■関連スレ
C#, C♯, C#相談室 Part93
http://mevius.5ch.net/test/read.cgi/tech/1492818720/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part142
https://mevius.5ch.net/test/read.cgi/tech/1551908141/

■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2019/06/23(日) 15:09:33.41ID:4oGZ8zjy0
WEBのエロ画像収集のためのエロボット作るのにC#は向いてますか?
向いていないなら何言語や何のフレームワークがオススメですか?
2019/06/23(日) 15:41:05.03ID:4589uE1UM
>>574
エロは偉大だからな。
当然C#で可能。
2019/06/23(日) 19:50:32.93ID:XYuZEt+Z0
>>574
AngleSharpっていう便利なライブラリを使うと色々と捗るよ
2019/06/24(月) 07:04:12.89ID:INU2Nep40
>>576
こんなエロボットフレームワークがあるんですね
もう爆発寸前なので助かります
さー調査と設計だ
2019/06/25(火) 00:07:05.16ID:UHHkgEL+0
Guid構造体はなぜnullと比較可能なんでしょうか?
2019/06/25(火) 01:31:20.19ID:KoYuAQ6u0
>>578
nullの比較できるというのは気のせいだね
2019/06/25(火) 03:29:25.92ID:4JR3abKur
どの値型でもnullと比較する式は書けるが
Nullable以外だと結果は常に非null、じゃなかったっけ
2019/06/25(火) 10:31:07.49ID:6gRatuk7p
構造体なんて無いから。
常に実体がやり取りされているんだからnullの状態なんか無いよ。
2019/06/25(火) 11:54:15.85ID:M3mY4uqKd
構造体はあるやろ
2019/06/25(火) 11:56:21.92ID:S47SJWtZM
ガイジに話しかけるな
2019/06/25(火) 12:24:38.17ID:hYWx9HjQ0
なつくぞ
585デフォルトの名無しさん (アウアウカー Sa5d-okmR)
垢版 |
2019/06/25(火) 12:26:46.14ID:fHxE1RgIa
WPFちょっとやってみたけどクソめんどくさく感じるんだけど慣れるとformアプリではもうやらないってなるもん?
2019/06/25(火) 12:59:02.90ID:dhEdiy5y0
そこまでではないけどFormsでListViewにバインディングできないことにうんざりするぐらいには
2019/06/25(火) 13:05:18.68ID:kPWnGZLKM
>>585
やればやるほど新たに面倒臭い概念が出てきて余計に面倒臭くなるよ
コントロールテンプレート、依存関係プロパティ、ルーティングコマンド、ルーティングイベント、デコレータ、エフェクト、VSM、色空間、Drawing系API、等々、WPFの魔境は果てしなく続く
現代における典型的なセカンドシステム症候群の事例としては貴重だから、どんな概念があるかを一通り眺めてみる分には損はない
一つ一つのアイデア自体は非常にスマートなもので、なるほどと感心するようなものが多く、フロントエンド設計の勉強にもなるしね
2019/06/25(火) 19:00:07.49ID:jHEFOU5uM
>>587
ちょっと書きづらいよね
あとから見る時も見辛いし
プリプロセッサでも作ろうかな
2019/06/25(火) 19:02:33.37ID:vtQg0q3N0
.NET Standardの中で.NET Coreから呼び出されたかどうか判断できます?
Environment.GetCommandLineArgs().First()の拡張子で判断くらいしか思いつかず
明確な方法があれば助かります
2019/06/25(火) 19:26:07.17ID:zsZioWuM0
>>589
なんでそんなことがしたいの?
2019/06/25(火) 19:46:04.41ID:vtQg0q3N0
>>590
HttpWebRequestの実装が恐ろしいので何かしら対策しようとしています
2019/06/25(火) 20:18:45.64ID:H0q3OQVA0
https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.runtimeinformation.frameworkdescription?view=netframework-4.8
これでどう?
2019/06/25(火) 20:28:52.74ID:vtQg0q3N0
>>592
ありがとうございます
Assemblyを辿ってそれっぽいのも見つかったのですが、こちらの方が簡単なので
参考にさせてもらいます
2019/06/26(水) 04:29:08.46ID:eFojmlDc0
>>585
慣れても仕事とかだと普通にwinform使う
なんだかんだとwpfはめんどくさく
学習コスト高いから
習熟した開発者が少なくて安易に使えない
595デフォルトの名無しさん (アウアウカー Sa5d-okmR)
垢版 |
2019/06/26(水) 08:07:26.56ID:u3TFQ+4na
>>587
>>594
ありがとう
開発手法としては理にかなってて割と好きではあるんだけども勉強してみて学習コストが高いと言われるているのはよくわかった。。
もう少し書籍なり充実してて将来性も有望なら頑張れそうだけど早くも心折れかけてる
2019/06/26(水) 08:16:17.91ID:PhRSMRl5d
仕事だとテストのしやすさが重要なファクターだからWPF一択だな
テストしなくていいよってとこならWinforms
2019/06/26(水) 09:16:39.11ID:xtHmKE3cM
WPFとMVVMを採用したからといってビューをテストしなくてよくなるわけじゃない
それWinFormsじゃ難しいッスwwサーセンww
が通用しなくなってビューの仕様が膨張しがちな分だけ、まず例外なくテスト工数は増えるよ
Passive Viewのような設計パターンを学べばWinFormsでもビューロジックの単体テストは可能
2019/06/26(水) 09:26:06.98ID:QHgmuWluM
ズレた会話を補正できるフレームワークをください
2019/06/26(水) 09:26:37.90ID:PhRSMRl5d
「テストのしやすさ」な
2019/06/26(水) 09:27:18.92ID:PhRSMRl5d
別にWinformsはテスト不可って言ってるわけじゃない
2019/06/26(水) 09:48:33.88ID:HSzkoapr0
.mobi もしくは .azw .azw3 のファイルを解凍?するライブラリってありませんか?
2019/06/26(水) 10:08:27.28ID:RqqyhRb10
nugetで検索してみればmobiはいくつか見つかるな
2019/06/26(水) 18:48:22.15ID:mLhKuAUca
言うほどお前らテスト書いておらんやろ
2019/06/26(水) 19:20:20.18ID:PhRSMRl5d
書いとるよー
2019/06/26(水) 19:22:39.39ID:UJGyHIPed
ビューのテストって何をテストするの?テキストがはみ出さないかとか?
2019/06/26(水) 19:25:49.92ID:sx0u8G1v0
asp.netのSQLServerアクセス部分でユーザーのアクセスが重なるとどうもDBアクセスに失敗するみたいなのですが、DBアクセス処理をstaticメソッドで書くのは悪手だったりするでしょうか?
607デフォルトの名無しさん (エムゾネ FFb3-br4T)
垢版 |
2019/06/26(水) 19:31:19.63ID:fmXddalaF
lock と retry 汁
2019/06/26(水) 19:40:03.93ID:PhRSMRl5d
>>606
コード晒してみ
2019/06/26(水) 19:46:46.69ID:sx0u8G1v0
>>608
会社かつ前任者のコードなので晒すのは難しいのですが、ASP.NETのようなwebアプリでstaticメソッドとか大丈夫かなと思いつつもダメな理由は説明できず
メモリ領域共有するんじゃなかったかな程度の認識です
2019/06/26(水) 19:52:43.34ID:sx0u8G1v0
ASPの者ですが、問題のメソッドが抱えるSQLはSELECTしかないのでデッドロックは無いと思います
呼び出し先のターゲットでエラーをキャッチしました
程度のログしか残って無いので、現象再現が難しく困っております
2019/06/26(水) 19:52:48.15ID:bHDlLtN30
アメリカ製品を著作権で保護する義務は無い。プロテクトをはずしたコピー
の流布を何人たりとも妨げてはならない。

福島原発爆発させたアメリカ人は、日本人に慰謝料を払え。
日本人は大切な農地を失った。一兆円の一億倍の金額を日本人に払う義務がある。
2019/06/26(水) 19:53:56.64ID:bHDlLtN30
頭がいい日本人は、プロテクトをはずし、流布できる。
アメリカ人に金を払う義務も義理も無い。
2019/06/26(水) 19:58:15.93ID:Yg3jjeyya
コピペマン参上!!!まで読んだ
2019/06/26(水) 19:58:53.91ID:PhRSMRl5d
>>609
どうやってDBにクエリ投げてるかも見ずに判断はできないよ
2019/06/26(水) 20:03:19.28ID:U8omILn4p
>>606
コネクションのクローズしとる?
2019/06/26(水) 20:04:01.32ID:Ah/Hy021a
Connectionインスタンスも共有してるというオチだろ
2019/06/26(水) 23:23:25.13ID:PXDML4haa
コネクション自体がstaticとか、コネクションがSessionに突っ込まれてるとかありそう
Librahack事件みたいなクソソースになってるんじゃなかろうか
2019/06/27(木) 07:00:32.10ID:nNrp6UFx0
エラーメッセージを取得して、それで検索すれば?
DB の実行計画を見るとか

一方が読み取りでも、他方が同時に書き込みしていれば、その間ロックされる

特定の時間帯に、時間の掛かるバッチ処理で、
長時間に渡って、表を更新しているかも知れないし
2019/06/27(木) 07:07:10.17ID:C3eSzJbL0
>>618
楽観的排他制御なら読み込みは出来るかなと思ってましたが色々確認しないとダメなのですね
2019/06/27(木) 08:45:24.16ID:v58kjs08M
レコードロックとテーブルロックを機能ごと指定させられたことあるけど
落ちないだけで本当に適切な仕様は自分で考えてねって設計書に書いてあった
フィールドに全体の件数と合計から算出する要素があって明らかに徒労なのに頑張った
2019/06/27(木) 08:49:39.03ID:S3Pv/OFX0
>>602
無かったのでKindleUnpackのPythonソースを読みながら自分でコード書いた。
画像データの取り出しだけなら簡単だったよ。
622デフォルトの名無しさん (エムゾネ FFea-RNYM)
垢版 |
2019/06/27(木) 11:02:50.04ID:te5kXF0fF
>問題のメソッドが抱えるSQLはSELECTしかないのでデッドロックは無いと思います

史上稀に観るアホ
触っちゃいけないレヴェル
2019/06/27(木) 12:10:15.36ID:8RLu6j/60
string str_url_test = "https://www.rarara.co.jp/xasdfs333ad/code/abcdefg/ref=112&;number=555";

//正規表現を定義
string anchor = "https://www.rarara.co.jp/.*/code/(?<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);
}

スマートな定義を教えてください。
2019/06/27(木) 12:32:07.51ID:cRVxwV8ZM
まずスマートの定義をくれ
2019/06/27(木) 14:09:30.43ID:Q2Oxmr0fM
>>624
あーウゼー
2019/06/27(木) 14:20:45.08ID:nNrp6UFx0
Ruby で作った

[^/]+ は、/ 以外の文字が、1つ以上続く。
正規表現のスレで、聞いた方がよいかも

# 正規表現を、%r!〜! で囲むことで、/ を、\/ と、自動的にエスケープする。
re = %r!^http://www.rarara.co.jp/[^/]+/code/([^/]+)!

str = "http://www.rarara.co.jp/xasdfs333ad/code/abcdefg/ref=112&;number=555"

md = str.match( re )
puts md[ 1 ] #=> abcdefg。md[ 1 ] は、capture 部分
2019/06/27(木) 14:27:06.21ID:2+uL3o0i0
¥エスケープは@で
初心者を困らせる輩はrubyスレに消えて
628デフォルトの名無しさん (エムゾネ FFea-a57L)
垢版 |
2019/06/27(木) 14:45:42.13ID:A3w8sjPHF
仕様を小出しにするなカス
死ね
2019/06/27(木) 14:54:33.49ID:8RLu6j/60
>>626
ありがとうございます。
正規表現がシンプルでいいですね!
私も正規表現を極めたいものです。
2019/06/27(木) 14:57:15.00ID:8RLu6j/60
正規表現は苦手なんだよな。
いろいろなパターンで試して勉強するしかないかな。

効率的に勉強する方法はある?
2019/06/27(木) 15:07:03.52ID:nNrp6UFx0
Ruby, JavaScript あたりの正規表現のページを読めば、十分じゃないの?

先読み・後読みは、難しいから無視する。
その代わりに、[^a]+ みたいな、a以外の文字が、1つ以上続くなどの表現を使って避ける
2019/06/27(木) 22:42:48.18ID:EN7VAxwO0
DataGridViewなんですが、Win10で描画がものすごく遅いのは何とかなりませんか?
もちろんオンボのおんぼろノートなのが悪いのですが
Win10上のゲストXPのほうが断然早いのは納得できません
2019/06/27(木) 23:12:47.92ID:oiNM/LxL0
>>632
DoubleBufferedプロパティをtrueにする
2019/06/28(金) 00:28:54.58ID:DioESCVe0
C# +Selenium で headless でブラウザを開くと遅くないですか???
2019/06/28(金) 06:58:11.47ID:D2ExxOf/0
Windows10, Ruby, Selenium WebDriver で、どのブラウザでも、

最初の起動には、10秒ぐらい掛かる。
2回目以降は、5秒ぐらい
2019/06/28(金) 07:27:31.58ID:+Ee2NvDr0
DataGridView触る仕事とかしたくねーなー
近々消される運命のものを覚える程のキャパは無いぜ
2019/06/28(金) 08:12:54.55ID:l8i4Vkx00
>>636
だったら何ならいいんだよって話

今更どうこうされるとも思わない
javaのspringあたりが実はいいのかもしれん?
2019/06/28(金) 11:24:55.63ID:NfHf96pi0
そもそも消されるというのは何を言ってるのか
わざわざ.NET Standardにぶちこんだのに
今更改善はされんだろうが
2019/06/28(金) 11:52:47.07ID:DioESCVe0
セレニウムでヘッドレスモードで
Ajaxを使っているページを取得しようとすると
xpathが見つからないです。

また、ヘッドレスモードだとデータ取得がブラウザを表示する場合と比べて遅くないですか?
2019/06/28(金) 12:44:42.09ID:lDUutk93d
>>637
Springわろた
2019/06/28(金) 14:44:09.62ID:MTNOQapr0
>>639
C#関係ないから別スレで聞いてね
2019/06/28(金) 14:51:29.52ID:DioESCVe0
>>641
URLはって
そいたら移動する
2019/06/28(金) 15:05:19.30ID:NRtGoyzNp
そんな事書いてると、ウィルスサイトに誘導されるだけだぞ。
2019/06/28(金) 17:21:43.81ID:a5iu9xEpM
>>640
でも絶対消えないだろ
VMあるし動き続けるぞ
2019/06/28(金) 17:58:15.08ID:lioMzEvpd
Springはおっさん達にはいい反面、これからの人材育成のコストが高い。この事実により減ってく気がする。
2019/06/28(金) 18:05:48.87ID:jvOF1fHl0
スレタイとテンプレ読めないのおまえら
2019/06/28(金) 22:23:15.24ID:9V6DEbDgM
愚問だな
たぶん愚問も読めないぞ
2019/06/28(金) 23:46:40.47ID:kc3OO/mk0
おろかもん?
2019/06/29(土) 02:04:31.50ID:CfES0TXk0
char * を引数にとるdllの関数に対して、stringを渡しているのですがこの時エンコードはどうなってしまっているのでしょうか?
2019/06/29(土) 02:41:22.49ID:U4J3X9fn0
>>649
https://ufcpp.net/blog/2016/12/tipsstringmarshal/
651デフォルトの名無しさん (ワッチョイ 158f-a57L)
垢版 |
2019/06/29(土) 02:43:08.25ID:CfES0TXk0
>>649ですが自己解決しました。(質問した時点では自分の悩みも理解できていませんでしたが…)

まずstringで渡る文字列のエンコードは
ansi or unicode(utf-16)になる。どちらになるかはDllimport文で指定する。
でした。

ところで結局自分が渡したかったのはutf-8だったので困ってしまったのですが
stringstringではなくbytes[]を引数にすれば好きなエンコードで渡せるので解決しました。
652デフォルトの名無しさん (ワッチョイ 158f-a57L)
垢版 |
2019/06/29(土) 02:44:55.06ID:CfES0TXk0
>>650
入れ違いになってしまいましたがありがとうございます。
質問する前の粘りが少し足りてませんでした、すみません。
2019/06/29(土) 12:00:26.90ID:hssGSTafa
>>651
.NET Framework4.7以降が対象なら
UnmanagedType.LPUTF8Str もある
2019/06/29(土) 13:09:26.51ID:SmRBL5H90
でもC#はByte型やByte[]型配列の機能弱いからなぁ
何か加工しようと思ったらフルスクラッチするか、
String型にイチイチ変換するしか無いんだよなぁ
655デフォルトの名無しさん (ワッチョイ d67c-a57L)
垢版 |
2019/06/29(土) 13:22:08.44ID:TBOm/90P0
unsafe
656デフォルトの名無しさん (ワッチョイ 6d68-rkTX)
垢版 |
2019/06/29(土) 16:56:21.59ID:eBTnp91s0
c#で枠のないフォームっていうのが簡単に作れるけど
これって歴史的に言えば、10年前からできたんですかね?
技術的にとてつもないことだと思うんですが、こういう事まで機能として
提供して大丈夫なんですかね
2019/06/29(土) 17:29:11.42ID:ptlXP7M80
>>656
何か大丈夫じゃなくなることってあるの?
枠無しどころかフォームの形も自由に作れるけど
https://dobon.net/vb/dotnet/form/formregion.html
https://dobon.net/vb/dotnet/form/transparencykey.html#shape
2019/06/29(土) 17:30:51.20ID:dztqrfzza
>>656
20年前にはできてたな
2019/06/29(土) 17:33:57.14ID:hssGSTafa
>>656
Win32APIのCreateWindow()でdwStyleを変えれば枠なしウィンドウを簡単に作れるし
そのAPIはMicrosoft DocsによるとWindows 2000時代にはサポートされていたわけだが
2019/06/29(土) 17:48:17.59ID:18j8PEbp0
>>656
技術的にはタイトルバーと枠を省くだけだから
とてくもないことということはないと思うけどな

描画的にはタイトルバーと枠を描画しないだけだし
動作的にはそれらが機能しないだけだし
2019/06/29(土) 17:53:44.15ID:AOeCR8Fo0
>>656
何を心配しているの?
2019/06/29(土) 17:55:17.63ID:FzKXrugu0
Xの目玉とか、伺かとか知らない世代か…
663デフォルトの名無しさん (ワッチョイ d902-a57L)
垢版 |
2019/06/29(土) 18:04:14.38ID:rlA57Q8P0
webbrowserコントロール使ってページ遷移してる時に
ページによってはアラートのメッセージボックス出してくるとこがあるんですが
そうなるとプログラムの制御がそこで固まってしまい進めません。
アラートをプログラムで自動的に閉じるにはどうしたらいいんでしょうか?
メッセージボックスつかまえてEnterキーが押された感じにするとかですかね?
664デフォルトの名無しさん (ワッチョイ 8663-Ij2G)
垢版 |
2019/06/29(土) 18:20:19.05ID:18j8PEbp0
>>663
webbrowserのIEのバージョンを最新のIE11Edgeモードにすると
余計なアラートが出て来なくなったと思う

レジストリに設定しないといけないのが面倒だが
デフォルトだとIE7バージョンでレンダリングになり
たびたびアラートが出てくる

何年か前に使った時の記憶でスマン
詳しくはググってみて
2019/06/29(土) 18:24:09.63ID:hssGSTafa
>>663
WebBrowserのScriptErrorsSuppressedプロパティにtrueを設定すれば
(このプロパティ名であるにもかかわらず)全てのポップアップ系統を表示させないように出来るんだけど
これで要件満たせるならどう?
666デフォルトの名無しさん (ワッチョイ 6d68-rkTX)
垢版 |
2019/06/29(土) 19:36:33.60ID:eBTnp91s0
>>658-661
20年前って本当?
何が怖いかって、デスクトップの背景に紛れたら
わからなくなるじゃないですか、それが怖い
こんな機能問題ないのかなって思うんだよね
2019/06/29(土) 19:59:02.78ID:H6Ncr62l0
>>666
ウインドウズには昔からフォームを表示しないプロセスすら当たり前にあるんだから
プログラムの前にPCの基本知識から勉強したほうがいいよ
2019/06/29(土) 20:09:37.55ID:rlA57Q8P0
>>664 >>665
すみません。説明が悪かったかもしれません。
その種のエラーアラートではなくてサイトにアクセスした時に
サイト側のスクリプトが確認のメッセージボックスを出したりして
それで動きが止まってしまうので、自動でOKボタンをクリックするなどして
メッセージを閉じたいってことなんです。

ウェブブラウザコントロールのScriptErrorsSuppressedはOFFにしてますね。
確かにこれOFFにしてないと大量のエラーがでますよね。
2019/06/29(土) 21:34:15.51ID:FVFUaXhq0
ポインタって現役のころから考えても
業務で使うことはほぼなかったな〜
2019/06/29(土) 21:35:50.78ID:B3n0CVhg0
>>669
デカい画像を扱うときって必須じゃね?
まあ、アクセス用の関数も作るけどさ
2019/06/29(土) 21:41:55.57ID:FVFUaXhq0
ポインタなんて使わなくても必要な機能は
幾らでも実装出来る。

無駄な機能だよな。ポインタって。初めてポインタと出会った時はすんげー混乱させられて
プログラム嫌になりそうだったw
2019/06/29(土) 21:59:39.78ID:KuifYO5q0
アセンブラやってたらインクリメントを有効に使いたくなっちゃうじゃないですか!
配列のアクセスに毎回アドレス計算するなんて無駄じゃないですか!
2019/06/29(土) 22:07:30.42ID:FVFUaXhq0
アセンブラなんて全案件の1%にもみたないだろ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況