X

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

レス数が1000を超えています。これ以上書き込みはできません。
2021/08/25(水) 19:44:16.81ID:tgvUkE6r0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

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

■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
https://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/08/25(水) 19:46:58.93ID:tgvUkE6r0
関連スレ
ふらっと C#,C♯,C#(議論用)
https://mevius.5ch.net/test/read.cgi/tech/1469538912/
2021/09/03(金) 00:07:36.45ID:AHipKBXs0
GoogleChromeにあるイメージファイルをデスクトップにドラッグすると大抵の場合イメージファイルを保存できますが
これをPictureBoxに直接ドラッグしてイメージを表示させたいです
※URLを取得してからのダウンロードだとjavascriptなどで読めないイメージが多いので他の方法を探しています

これはクリップボードを経由してるんでしょうか?もし経由しているとしたらクリップボードのフォーマットは何を使ってるんでしょうか。
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.dataformats?view=net-5.0
それ以外ならどういう仕組みなんでしょうか、何か手掛かりになるものがあれば助かります。

もし無理なら特定フォルダ作り定期的に監視して増えたファイルをロードしようと思いますが
できればコントロールにドラッグしたいです、よろしくおねがいします。
2021/09/03(金) 00:31:32.04ID:AHipKBXs0
>>3
返答なさそうなので相談室に移動しました
スレ汚しになってすみませんでした
2021/09/03(金) 00:59:39.49ID:/hJaxIac0
>>4
最近の5chはだいぶ過疎ってきてるし0時過ぎたらそうそうレス付かないぞ
2021/09/03(金) 02:24:35.26ID:csEVwGb30
画像を握ってるChrome自身が好き勝手できることに疑問はないが
ブラウザから他のアプリのコントロールにってなんかできる気がしないぜ
2021/09/03(金) 08:18:16.22ID:Ew11Ba9+D
そもそもC#なのかっていう
2021/09/03(金) 11:39:55.75ID:hrRshf8H0
>>6
Windows純正エクスプローラーとかってChromeからドロップされた画像をわざわざ再度ダウンロードしてるってこと?
2021/09/03(金) 12:12:30.13ID:hrRshf8H0
いやでもドロップされたURLからダウンロードし直す、って形だと例えばリファラー見てくるPixivの画像とか保存できないよな
でも出来るって事は何かしら画像データを直接貰う方法あるんだと思うけど、自分も気になってWinFormsでテストしてみたらそれらしきドロップ情報は見当たらない
DragImageBitsが一見そうっぽかったけど、これは元データではなくドラックドロップするときのサムネ画像だった
2021/09/03(金) 12:50:06.92ID:csEVwGb30
>>9
バカなん?
Chrome自身が表示するための画像持ってるんだから単にファイル保存してるだけだろ
そこに疑問があるの?
2021/09/03(金) 12:52:52.33ID:csEVwGb30
サムネイルがちっちゃかったらうんこみたいな画像表示されんじゃないの?
2021/09/03(金) 13:13:32.82ID:hrRshf8H0
>>10
???
Chrome → ExplorerへのドロップのみChrome側の特殊配慮でファイル保存してくれるって主張?
そういう事を言いたいんであればTablacs等の3rdパーティー製アプリでも同様の挙動してくれるから送り先ではなくドロップ先が何かしらの操作をしてるものだと思うんだが?
2021/09/03(金) 13:16:27.64ID:PQRWg2pe0
>>10
なんでそんな煽り口調なのか分からんけど
D&Dって実際に処理するのはドロップされた側なのよ
だからファイルとして保存するのはExplorerの仕事
Explorerからデータくれって言われてからデータを渡す遅延処理の仕組みはある
2021/09/03(金) 13:23:39.02ID:hrRshf8H0
>>13
Chrome以外のブラウザでも同じ挙動なのと、上で上げたようなExplorer以外のアプリでもDDからの直接保存を実装可能な点も考慮したら受け取る側が処理してるとみるのが普通だよな
ただWinFormsのドロップイベントからはそれらしき情報は見当たらないが
15デフォルトの名無しさん (ラクッペペ MM8f-em86)
垢版 |
2021/09/03(金) 13:24:19.97ID:uY/kSVt6M
>>12
お察しの通りChromeがローカルファイル保存してそのパスを伝える
2021/09/03(金) 13:28:26.22ID:Bx5RA1Jba
>>13
まあ公平に見て>>9は煽られてもしょうがないと思うw
D&DでURIをもらって〜、なんてありえないでしょう(笑)

受け渡しているのはChromeのキャッシュフォルダーの中の画像ファイルの
パスに決まってるよね普通に考えて。
しかし、Chromeがビットマップ自体のD&Dを提供してないのは
セキュリティー上の理由なのか単なる手抜きなのか、
何なんだろうね。

今のは知らんけどちょっと前のFireFoxとかだと普通に出来たけどな
2021/09/03(金) 13:30:30.90ID:hrRshf8H0
>>15
当然それも想定したけどWinFormsのドロップイベントからはローカルファイルパスらしき情報は見当たらなかった
FILEDESCRIPTORW構造体からcFileName読み取ったりとかまでしてみたけど
2021/09/03(金) 13:31:37.71ID:hrRshf8H0
>>16
だからURI貰って〜があり得ないっていうのは9で言ってるだろ
それだったらリファラー見て弾いてくるような画像は保存不可能なはずだからな
そしてキャッシュ渡しに関しては>>17
2021/09/03(金) 13:32:24.15ID:Ew11Ba9+D
ここまでC#の話題無し
2021/09/03(金) 13:33:32.91ID:hrRshf8H0
>>19
俺はずっとWinFormsのドロップイベントの話してるけどな
2021/09/03(金) 13:39:28.75ID:Bx5RA1Jba
>>18
そうですか。

まあそれはともかく、>>9が言うように、Chromeからエクスプローラに
画像をD&Dした時に何が行われているかについては
どこにも疑問の余地はないと思うけどね。
2021/09/03(金) 13:41:11.51ID:Bx5RA1Jba
>>21
失礼

× >>9が言うように
>>10が言うように
2021/09/03(金) 13:45:43.94ID:hrRshf8H0
>>22
12の俺のレスや>>13は間違ってるって主張?
2021/09/03(金) 13:47:28.12ID:hrRshf8H0
まぁキャッシュ渡しならキャッシュ渡しで良いからどうやってローカルパス取得出来るのか具体的に教えてもらいたいな
2021/09/03(金) 13:51:37.56ID:pInph4TO0
HTML から、OS のネイティブ内には、直接アクセスできない

つまりブラウザは、OSのAPI を使って、
ファイル保存ダイアログを呼ぶ事しかできない

ファイル保存ダイアログは、ユーザーが直接操作する事しかできない。
ブラウザが操作する事はできない

もし、HTML から自動的に操作できれば、ローカルPC 内をいじられてしまうから、
ユーザーの直接操作しか認めていない
26デフォルトの名無しさん (ラクッペペ MM8f-em86)
垢版 |
2021/09/03(金) 13:54:23.64ID:uY/kSVt6M
ググってすぐ出てくるこれじゃだめなん?
https://atmarkit.itmedia.co.jp/fdotnet/csharptips/003dragdrop/003dragdrop.html
2021/09/03(金) 13:58:47.79ID:hrRshf8H0
>>26
エクスプローラーからのドロップが直データではなくstring[]のファイルパス配列って事は当然知ってるからそれに習って模索してみた訳だが結果は>>17
まぁ見逃してるかもしれんから、キャッシュパス渡してる説唱えてるやつは是非とも具体的な取得方法を書いてもらいたいが
2021/09/03(金) 14:04:16.74ID:hrRshf8H0
>>25
ドラッグ操作はHTMLやjsによるものではなくブラウザの機能だからその説明はちょっと違うけどな
んでChromeって恐ろしい頻度でCreateFileやReadFile、WriteFile呼びまくってるからユーザーの許可なくファイル操作なんて日常茶飯事にやってることだし
2021/09/03(金) 14:05:19.33ID:Bx5RA1Jba
>>23
間違っているかどうかは知らない。
何を言ってるのかよく分からないから。

Chromeからエクスプローラに画像ファイルをD&Dした時にエクスプローラ側がもらう情報は
Chromeのキャッシュの画像ファイルのパスなのは疑問の余地がない。

エクスプローラはドロップ先のフォルダにその画像ファイルをコピーしてるだけ。

人の話聞かない人みたいだから繰り返すけど、重要なのは上記に「疑問の余地なんかない」ってこと。
だから疑問の余地なんかないと指摘してる>>10は正しいと言ってる。
2021/09/03(金) 14:07:19.94ID:hrRshf8H0
>>29
だーかーら、キャッシュパス説を唱えるなら具体的なパス取得方法書いてくれよ
ググってもんな情報出てこないからきっとスーパーハッカーのお前しか分からないっぽいのでぜひとも教えてくれ
2021/09/03(金) 14:09:42.64ID:XfY3huhQ0
MemoryStream読むっぽいよ
https://stackoverflow.com/questions/49695870/how-can-i-retrieve-the-drag-drop-data-from-chrome-like-windows-explorer-does
2021/09/03(金) 14:26:02.52ID:hrRshf8H0
>>31
GetFileContentNamesと同じようなことは既にやってて、FileGroupDescriptorWは単なるファイル名しか取得できずキャッシュパスは取得できなかったが
GetFileContentは試してみる価値ありそうだな
この方法だとしたらキャッシュからの取得ではなく画像データすっぱ抜くってことになりそうだが
2021/09/03(金) 14:32:35.52ID:OHAz9Fu/0
>>30
パスじゃなくてIDataObject
クリップボードで使ってるのと同じ
source側でIDataObjectを生成してDragEventArgsに入れてdestination側で受け取れるようにしてる

>>3
ブラウザによって対応フォーマットが違うので
IDataObjectのGetFormats()でアプリ別に対応フォーマットを確認して望ましいフォーマットの順に処理する
2021/09/03(金) 14:36:22.10ID:hrRshf8H0
>>33
やっぱりローカルファイル渡しではなくバイナリ渡しっぽいな
>>31を.NET5で試すとGetFileContentFromHGlobal内でリフレクション使ってローカルフィールドにアクセスするところで例外出るからhsource.dot.netでも見て調整しなきゃダメそうだが
2021/09/03(金) 14:38:46.60ID:uM+QBK1w0
>>20
WinFormsって.NET FrameworkのAPIだからC#の話題じゃないじゃん
2021/09/03(金) 14:42:28.10ID:hrRshf8H0
>>35
「C#固有の話題じゃないじゃん」なら100歩譲って分かるけどC#の話題ではあるだろ
2021/09/03(金) 14:51:03.62ID:nIoBxviM0
C#って何かしらのフレームワークと組み合わせで使われるのが普通だしな。
システムコールだけでWindowsのウィンドウ開くアプリ作れってか?
2021/09/03(金) 15:20:03.92ID:hrRshf8H0
完璧に出来たわ
>>31のAnswer内のコードを丸々コピペして、
private static MemoryStream GetFileContentFromHGlobalメソッド内の"GetDataFromHGLOBLAL"を"GetDataFromHGLOBAL"に修正すればちゃんとリフレクションでメソッド取得出来て画像データのMemoryStreamゲットできる
下らないタイプミスあって笑ったが素晴らしいアンサー
2021/09/03(金) 15:28:11.28ID:uM+QBK1w0
>>37
聞く場所が違うぞって誘導するだけでいいでしょ
2021/09/03(金) 15:34:48.16ID:hrRshf8H0
どうでもいいけどリフレクションで取得した動的メソッドもC#9の関数ポインタから問題なく呼べるんだな
>>38で言うと
var func = (delegate*<object, string, IntPtr, object>)getDataFromHGLOBLALMethod.MethodHandle.GetFunctionPointer();
として第一引数のobjectにインスタンス渡したら普通に画像ゲットできた
2021/09/03(金) 16:08:18.45ID:pInph4TO0
なるほど、キャッシュパス説か。
確かに、ブラウザは画像があると、それをキャッシュファイルに保存する

だから、2回目以降は、そこから再読み込みするのだろう。
それをブラウザ内のメモリに読み込んで、それをOS のAPI に渡すのだろう
2021/09/03(金) 16:11:37.35ID:hrRshf8H0
WndProcオーバーライドしてWMドロップ等からバッファ取得してUnmanagedMemoryStreamからImageに変換みたいなスマートな方法もありそうだな
そもそも自分発のお題ではないけどDDでブラウザから画像直接貰えるのは便利だからもっとスマートな実装模索してみる
2021/09/03(金) 16:13:13.44ID:hrRshf8H0
>>41
キャッシュ渡し説は完全論破されてるけどな
ブラウザが画像をどう読み込むかにおいてはキャッシュが利用されるのは当然だがそれはこの話とは関係ない
2021/09/04(土) 00:40:03.49ID:7+pvijvQ0
Outlook Drag and Drop
2021/09/04(土) 02:05:19.65ID:SIvDzyYf0
クリップボードはふしぎがいっぱい!
2021/09/04(土) 02:05:31.27ID:3vx2GXJfa
>>30
確かにキャッシュされたファイルのパスなんか提供されてないねw
今確認した。

偉そうな口をきいて失礼しました。
2021/09/04(土) 07:38:39.73ID:xKc0OJDY0
キャッシュかそうじゃないかが重要だったの?
2021/09/04(土) 09:05:57.74ID:vIpBQxqx0
>>47
別に画像取得さえできれば受け取りアプリ側からしたら何でもいいから重要ではないけど>>10みたいにドヤ顔で虚報広めてる奴いたからな
ただ不思議なのはなぜ標準のやり方ではFileContentsはnull返してくるんだろうか
IDataObjectが進化に追いつけてないってことなのか
2021/09/04(土) 11:14:26.78ID:xKc0OJDY0
>>48
>>10を書いたのは俺だけどキャッシュなんて一言も言ってないじゃん
2021/09/04(土) 11:21:14.12ID:xKc0OJDY0
なんか思い込みで無駄な苦労してない?
2021/09/04(土) 11:50:26.72ID:+o/Xq3Mh0
>>47
キャッシュかどうかが問題ではないが、ファイルかどうかは大事なところ

>>49
まあたしかに>>10ではファイルとしか言ってないな
それだと普通に考えればキャッシュか一時ファイルかになるだろうけど

キャッシュに決まってるだろって言いだしたのは>>16
2021/09/04(土) 12:08:37.25ID:vIpBQxqx0
>>49
別に俺はお前がキャッシュ渡しをしてると主張したなんて一言も言ってない
お前が虚報を言ってると言ったまで
2021/09/04(土) 12:08:51.84ID:xKc0OJDY0
>>51
じゃあ、君は間違っていたんだね?
2021/09/04(土) 12:11:22.19ID:xKc0OJDY0
>>52
キャッシュ重要なの?
ってレスに対して>>10を出して来たのは他ならぬ君のハズだけど
脳みそバグってない?
2021/09/04(土) 12:13:26.51ID:vIpBQxqx0
>>54
脳みそバグってるのはお前な
とにかく俺はお前が虚報を言ったとしか言ってないのは明確
んで実際にお前は間違っていた
Chromeがファイル保存をしているのではなくファイル保存をしているのはドロップ先のプロセスって結論出た訳だし
2021/09/04(土) 12:14:11.18ID:xKc0OJDY0
>>55
じゃあ、キャッシュと関係ないレスなんでしたの?w
バグってるだろw
2021/09/04(土) 12:17:58.67ID:vIpBQxqx0
>>56
どういうレスしようが5chなんてそれぞれの勝手だろ?
まぁそういう意味じゃお前が虚報を撒こうが勝手だけどそれを非難するのも俺の勝手だからな

主題で反論できないと分かるや論点ずらして小さい箇所で一点突破を目指すってまるでF爺にコテンパンにやられた西村博之みたいなカスだなお前
2021/09/04(土) 12:21:25.54ID:xKc0OJDY0
>>57
そうか、まあ、頑張れw
2021/09/04(土) 12:48:53.41ID:f4vSDVRW0
lets action begin.
2021/09/04(土) 18:13:14.95ID:ZyOjgA390
文字化けってほんとつらいっす
ありとあらゆるところに文字化けが潜んでて作業の邪魔する

ぐぐりまくって、バイト列に変換してから目的の文字コードに直す方法を習得したんだけど
これはもしかして万能な方法なんじゃないかと期待してるんだけど
まぁそのうち試してみよ・・・
2021/09/04(土) 20:14:30.44ID:4fE9BStG0
>>60
予め文字コードが分かってるなら何も難しい話は無いはずだけど、
色んなテキストファイル読み込んだり色んなHTML巡ったりしてて文字コードが不規則って事?
2021/09/04(土) 20:19:25.15ID:4fE9BStG0
>>57
半年くらい前にひろゆきがオブジェクト指向の説明をしようとして非OOPなただのMath系関数の説明し始めてて悲しかった
2ch開設者って言うからプログラミングの腕もそれなりだと思ったら初歩的な事も理解してないレベルだった
2021/09/04(土) 20:22:11.87ID:HPILmW6y0
あめぞうBBSに手を加えただけだし、
転送量危機の時だって本人は何もしてない
2021/09/04(土) 20:25:11.89ID:osn6/XE+0
>>62
ひろゆきはパクリこそ至高ってゆってるぞ
ソースなんてパクッってナンボ、ほんで文系
2021/09/05(日) 03:52:19.25ID:2EeVeniH0
>>61
今やってるのはメール受信ですわ
テストのために同じメーラーから同じ文章をgmailアカウントに送っているんだけど
なぜかアプリで受信したときの件名や本文とかの文字コードがUS-ASCIIになったりISO-2022-JPになったり。

ISO-2022-JPで送られてきたものをISO-2022-JPで変換すると、これまた文字化けすることに気づいて、対象の文字コードをまず取得して、それから変換しなきゃいけないと気づいてようやく今解決ですわ (解決したと思い込んでる段階
2021/09/05(日) 05:57:23.17ID:oHh0g2FX0
RFC読めよ
2021/09/05(日) 10:58:26.93ID:n9DrSLdy0
趣味ならRFC熟読するまでも無いだろ
そもそも文字化けでもないし
ちょっと検索すれば出てくるじゃん
https://atmarkit.itmedia.co.jp/ait/articles/0602/18/news009.html
2021/09/05(日) 11:56:27.38ID:iGX/kvk70
>>67
メール関連全く分からんけどヘッダのContent-Typeにcharset書かれてるならHttpClientみたいに自動エンコしてくれないん?
2021/09/05(日) 14:22:36.23ID:ICYnYWWd0
つかまあ7bitとかいいながらSHIFT_JISで送ってくるメーラーとかあるけどな
2021/09/05(日) 14:56:29.78ID:oHh0g2FX0
そういう解説には不十分なことしか書いてないからな
2021/09/05(日) 15:08:07.86ID:2EeVeniH0
おぢちゃんたち、ありがとうございます

これ>>67、わかりやすそうなのでいろいろ考えてみます
今日は疲れたのでまた明日にでも。
ずっと没頭してやってたんで、プログラム自体はいい感じに動くようになってきました

今回の文字コードの問題は再現性が低くてやっかいです
FromやToでこういう↓日本語交じりのアドレスを使ってテストしてると
ごちゃん株式会社<***@***.com>
ほんと、たま〜に「ごちゃん株式会社」の部分の文字がおかしくなる
連続してテストしても再現しないけど、時間置くとたまーに・・・
これきた、と思ってもう一度やると再現しない

もちっと勉強してきます
2021/09/05(日) 15:24:44.87ID:7oSpDR4l0
MIME-B や MIME-Q ってエンコードは知ってる?その仕様に合わないものが届いたりするってこと?
2021/09/05(日) 16:13:31.39ID:n9DrSLdy0
全く同じもの送りつけて再現しないならRFC以前の問題な気もするけど
2021/09/05(日) 16:31:42.66ID:Lv/WyGL80
>>71
馬鹿、ここは若い衆多いぞ
ちょっと目を離すとレスバトルだ
2021/09/05(日) 16:42:03.85ID:gyzxPlwG0
他の人が投げたメールを自分で作ったメールクライアントで受けると化けるものが
あるってい場合には、すべてに自動で対応するのは不可能に近いかな
みんながみんなちゃんとした完全なメールクライアントである保証(設定も含めて)は
ないから

自分で作ったメールクライアント同士で化けることがあるなら、基本は実装を
疑ってみる必要があるけど途中のメールサーバに問題があるとかないかな

本文は何かのエンコードでパック化しちゃえば問題起こらないだろうけど、
あて先とかSubjectはサーバ側でいじることも出来るので何か変えられて
いるとか・・・最近はそういうことないのかな
2021/09/05(日) 16:58:54.43ID:69Mttc9X0
Xamarinで他のタプページの値を取得しようとしてますが上手くいきません。

kadou.xamal.cs)

public sbyte Eigyou_kaisi => sbyte.Parse(eigyou_kaisi.Text);
public sbyte Eigyou_owari => sbyte.Parse(eigyou_owari.Text);

kihon.xaml.cs)

set_eikaisi = kadou.Eigyou_kaisi;
//営業時間の開始
set_eisyuryou = kadou.Eigyou_owari;
//営業時間の終了(時)
2021/09/05(日) 18:29:42.24ID:VF4l5IWe0
>>76
経過報告ありがとう。
引き続き調査よろしく。
2021/09/05(日) 19:09:17.61ID:69Mttc9X0
>>77
kadou k1 = new kadou();
set_eikaisi = k1.Eigyou_kaisi;
//営業時間の開始

のようにインスタンスを作成したらエラーが直りました。
79デフォルトの名無しさん (スッップ Sd7f-Z3ju)
垢版 |
2021/09/06(月) 12:29:48.61ID:742OrnqFd
vs2017から2019移行してInstallerProjectをいれたところ
setupプロジェクトのビルドで失敗します
2017のときはエラー一覧に成功数とかでてたのですが
2019では何も出力されないのですが
ここにエラー出す方法ありますか?
ツール、オプションのビルド設定で出力の詳細を
かえてみたものの変わりありません
2021/09/06(月) 16:37:31.47ID:PKsgHZNm0
重いループ処理で「くるくる」を表示させたいのですが、上手くいきません。
ボタンを押したら、10秒以上固まったような状態になります。

try
{
cvLayer.IsVisible = true;
frLayer.IsVisible = true;
MyActivityIndicator.IsRunning = true;

//await Task.Run(() =>
//{
//長い処理を記述
do
{
2021/09/06(月) 16:48:37.32ID:qiPyLsW90
質問文がないようだが
あとそのコメントアウトは何
2021/09/06(月) 17:07:07.69ID:PKsgHZNm0
Xamarin.Formsで重い処理の待ち時間に「くるくる」を表示させたいだけです。

コメントアウトは特に関係ありません。
2021/09/06(月) 17:45:51.35ID:u6Cpk6uR0
Xamarin.Formsを使ったことないからアレだけど、根本的なところを間違ってるんじゃないかという予感
とりあえず、ちょっとググったら↓みたいなのは見つかる
https://blog.okazuki.jp/entry/2016/11/22/225735
2021/09/06(月) 18:04:59.48ID:q0BBk2oV0
貴方には人脈が足りないわ
2021/09/06(月) 20:38:43.31ID:h/8uTFD00
インスタンス作り忘れるレベルの初心者には協力してあげたいがそのコード例だけじゃエスパーしかできん
固まるって事はTask.Runがコメントアウトされてる通りに同期処理になってるって事じゃないの?
ボタン押す → そのままTask作らずdo whileしたらそのwhileから抜け出すまでフォームは固まる事になる
2021/09/06(月) 23:56:03.29ID:PKsgHZNm0
>>85
await Task.Delay(1);
をループ文の前に追加したら解決しました。

VBの「Do event」にあたる処理を追加したかっただけです。
2021/09/07(火) 08:59:43.99ID:sURM7VfOM
>>86
根本的に解決してないとおも
2021/09/07(火) 12:23:11.12ID:sDLOmpYb0
https://anderson02.com/cs/xamarin1/xamarin-34/
このサイトを参考にして「ボタン押す」→Do-while処理中にActivityIndicator IsRunning="True"で「くるくる」表示
ループを抜けたらActivityIndicator IsRunning="false"で「くるくる」非表示にしてるだけです。

アプリの見た目上は問題ないんですが、、、
89デフォルトの名無しさん (ラクッペペ MM8f-em86)
垢版 |
2021/09/07(火) 12:33:12.71ID:sIBcULnDM
フォームが固まる事を問題だと思っているんだろうよ

フォームは固めておいたほうが問題がない
2021/09/07(火) 12:48:57.09ID:6F2EpZaw0
フォームが固まったらくるくるも固まるから問題って事じゃなくて?
await Task.Delayを追加しただけで解決したってのもよく分からないけど、一回コード全部張ったほうが良いと思う
2021/09/07(火) 16:51:54.68ID:wmVmTjL3a
おかしいな…
IObservable<T>のSubscribeメソッドってラムダを受け取る拡張メソッドが見つからない
IObserver<T>を受け取るメソッドはあるっぽいんですが…
前からこんなんでしたっけ?
2021/09/07(火) 16:56:52.37ID:wmVmTjL3a
あ、書いた直後に自己解決しました
System名前空間にあるんですね
Rxチームのパッケージ配置センスなさすぎでは…?
2021/09/09(木) 18:30:10.85ID:UHkOYZwyd
質問です。
xamarinとC#でAndroidアプリを作成していて、ボタン押下でPCに構築したFTPサーバとテキストファイルの送受信をする機能を作ったのですが、ログインは成功していて、サーバへのファイル送信は出来ているのですが、androidへの受信時に下記2点の問題が発生しています
1.ファイル受信自体はできているが、受信時のコマンド"RETR"のものとは別に受信後にsocket.Receive処理を行った際に数分待ちが発生して、nullのExceptionが返されてエラーとなる。(ファイル受信時のsocket.Receiveの戻り値は"226 Transfer complete.")
2.上記1.の処理を削除してみると、サーバのテキストファイル内容の取得のために1ファイル受信する毎に"PASV"コマンドで戻ってきた"227"のIPアドレス・ポートでsocketを開く処理をしているのですが、そこで戻り値が"226 Transfer complete."になってしまい、IPアドレス・ポートが取得できずエラーとなる。(また、IPアドレス・ポートを取得してsocketを開ける場合もあるが、ファイル内容を取得できていて、writeで書き込まれているはずだが、受信したファイルに内容が反映されない。)
上記1か2の解決方法について何か心当たりがあればお教えいただけますでしょうか?
2021/09/09(木) 19:21:04.36ID:j0rTxYM40
FTPなんてめんどいもん使わずにHTTP使った方がいいでしょ
2021/09/09(木) 21:06:16.60ID:LhM8pXBX0
みんなFTPやめるらしいな
ここ十年使ってなかったから関係ないけど!
2021/09/09(木) 22:12:44.03ID:MpjRQyyp0
Gopher、Netnews、Archie、telnet等に続いてとうとうFTPも廃れてしまうのか
2021/09/09(木) 22:25:10.71ID:AWFfXCnC0
次はrloginかのう
2021/09/09(木) 23:21:11.05ID:gxn3oe3G0
ま、まだSFTPがあるっ
2021/09/09(木) 23:26:37.96ID:gCpnrvIza
個人的にはSMTP/POP/IMAPにはやく消えて欲しい
あれHTTPSじゃ駄目なんか?
2021/09/09(木) 23:39:20.61ID:4IXSgzmq0
IReadOnlyDictionaryじゃなくてIEnumerable<KeyValuePair>使うメリットってあるかな?
理屈の上ではIEnumerableの方が軽い? 実感は到底無理な範囲で
2021/09/09(木) 23:43:03.47ID:gCpnrvIza
勝手にソートされない
2021/09/10(金) 00:09:21.03ID:A64Oz/xl0
>>99
httpsじゃ代用できないだろ
2021/09/10(金) 00:24:34.32ID:GfX6PsUoa
>>102
そうなん?
2021/09/10(金) 00:48:12.46ID:A64Oz/xl0
>>103
httpsはメール転送プロトコルじゃないやん
2021/09/10(金) 01:25:39.53ID:7cB9tBVG0
>>101
そういえばそうね
自分でも気付いたけどIEnumerableならkey重複もいけるのか、というかそれが一番大きな違いか
2021/09/10(金) 06:19:06.89ID:PnujWjIy0
後対象が10個位しかない時とか
2021/09/10(金) 13:27:04.04ID:2x+uyMAnM
IEnumerable<int?>からint?へのキャストはどのように行うのでしょうか?
キャストの方法を調べても見つけられず、とても初歩的な質問で申しわけありませんが教えてください
108デフォルトの名無しさん (ワッチョイ e6bb-kRcQ)
垢版 |
2021/09/10(金) 13:37:39.15ID:LCboCW1+0
Razor Pagesのチュートリアルをやってるんだけどさあ
Sqliteを使った時って、app.dbとかいうファイルが作られるけど、これどうやって中身を見れるの???
$ sqlite3 app.db
みたいにしたら、暗号化されてるかもしくはデータベースではないって言われてしまう
暗号化されてるとしても暗号化キーなんて知らんぞ・・・・
2021/09/10(金) 13:39:07.88ID:A64Oz/xl0
>>107
IEnumerable<int?>は複数のint?を持っているものなのにそれを一個のint?にキャスとしたいという状況が理解できないんだが
2021/09/10(金) 13:45:51.23ID:2x+uyMAnM
>>109
説明が足らずすいません

int? test = numbers.Select(x => x.orderNum)

このように複数の要素からひとつだけ抜き出して、それをint?にしたいと考えています
2021/09/10(金) 13:59:31.94ID:k/euzmbNa
orderNumはどこから来たんだ
2021/09/10(金) 14:02:03.49ID:A64Oz/xl0
>>110
int? test = numbers.Select(x => x.orderNum).FirstOrDefault();
2021/09/10(金) 14:11:18.49ID:GfX6PsUoa
>>108
GUIのフリーソフトでSQLite対応のやつあったと思うけど名前は忘れた
2021/09/10(金) 14:41:55.80ID:fLqCHdah0
>>110
勝手にorderNum番目の要素が欲しいと仮定して
int ? test = numbers.Skip( orderNum ).FirstOrDefault();
2021/09/10(金) 16:30:51.57ID:GiqDbYXEa
>>110
Selectって名前から連想して複数の要素の中から一つを選択するメソッドだと
思ったのかもしれないけどそうじゃない(そうだとしてもそのコードは奇妙に見えるけどw)

Selectは数学で言えば集合の要素に変換関数を適用して写像(別の集合)を作るメソッド。

LINQのチートシートみたい記事ないかなと思って今検索してみたら
書いてくれてる人がいっぱいいるみたいなので、そういうの読んで自分が求めているのは
どれなのかよく考えた方がいいと思う
2021/09/10(金) 16:42:10.90ID:fLqCHdah0
WhereとSelectはSQLに寄せた結果何だろうけど紛らわしいから
JavaScriptみたいにFilterとMapにして欲しかった
2021/09/10(金) 16:43:33.35ID:RmQ4ECJ80
>>110
IEnumerable<int?>はint?の複数形なのは理解してる?
つまり複数形を単数にキャストしたいと言われても複数あるうちのどれ?ってなる
んで具体的なコードまで書いてもらいたいならnumbersの型まで書いいたほうが良い
orderNumがメンバ要素なのかインデックス変数なのかでみんな混乱してる

メンバってことで先頭が欲しいなら>>112でもいいしnumbers.FirstOrDefault()?.orderNum;の方がスマートかもしれない
2021/09/10(金) 16:48:56.98ID:RmQ4ECJ80
Selectを最初に当たった要素抜き出しと勘違いしてるのか
2021/09/10(金) 18:34:13.47ID:LP/p1r6F0
遅くなってすいません。
皆さんがおっしゃる通り、Selectの挙動が理解出来ていないまま使っていました。

EFでデータベースとやり取りをしており、numbersはテーブルを表し、
orderNumはその中のひとつのカラムです。
情報も不足していてすいません。
このテーブルにはひとつのレコードしかなく(numbers[0]の意味) Selectすれば要素を取得出来るだろうと考えていました。
2021/09/10(金) 18:43:21.63ID:3/k8+9750
>>93
コントロールコネクションとデータコネクション処理の区分けしていない、どんな
順番で実行しているかも分からないのでどこがおかしいとか言うのは無理かな
プロトコルの実装はシーケンスが見えないとアドバイスのしようがないよ

1.は単純にいえば確保したバッファのサイズを越えて読み込もうとしているか、
グルグルReciveでバッファの割り当て忘れているかだと思うけど

2.で1.を削るっていうのが何の処理を削ったのかよく分からないけど、PASVで
「226」は返ってこないはずなので、サーバがおかしいのでなければコントロール
コネクションの制御が間違っていて他のコマンドのレスポンスを見ているか、
以前のコマンドのレスポンスを見ているのではないかな
2021/09/10(金) 19:06:41.45ID:cGWG4Dd90
>>119
ならnumbers[0].orderNumでいいんじゃないのか
2021/09/10(金) 21:46:29.33ID:EWGbhKdq0
https://www.c-sharpcorner.com/article/using-oxyplot-with-xamarin-forms/
上記サイトを参考にグラフを表示させたんだが、背景が黒になってしまうので白にしたい。
どうすればいいでしょうか?

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms";
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml";
x:Class="testxamarin2.Pages.Gurafu2"
xmlns:oxy="clr-namespace:OxyPlot.Xamarin.Forms;assembly=OxyPlot.Xamarin.Forms" xmlns:local="clr-namespace:testxamarin2.Pages">


<ContentPage.BindingContext>
<local:OxyExData />
</ContentPage.BindingContext>

<oxy:PlotView Model="{Binding PieModel}" />

</ContentPage>
2021/09/10(金) 22:40:03.53ID:us9/OBHL0
C#スレです。
2021/09/11(土) 00:52:24.21ID:gPJd3kYI0
ひょっとしてダークモード使ってるなんてことはない?
125デフォルトの名無しさん (ワッチョイ 4a47-aIS6)
垢版 |
2021/09/11(土) 11:05:16.93ID:svdFBuj80
>>123
C#だろ
2021/09/11(土) 14:33:08.39ID:7wmXh2qC0
正解はXamarinスレへじゃないかw

Microsoft Xamarin part8 [.NET MAUI]
https://mevius.5ch.net/test/read.cgi/tech/1627778316/
2021/09/11(土) 18:25:58.13ID:E5TnD1wu0
データ集計用にSystem.Windows.Forms.DataVisualization.Charting.Chartを使ってグラフを描画して画像保存をやっています。
特定のX軸のグラフのプロット座標をスクリーン座標かクライアント座標として得たいのですが、何か方法はあるでしょうか。
目的はグラフのY軸のピーク値とかのプロット地点の横に注釈を入れることです。
ChartオブジェクトのPostPaintイベントを追加してSystem.Drawing等でChartコントロール上に描画はできることは確認できていますが、
描画するにもグラフの各座標が判らなくて困ってます。
2021/09/11(土) 19:00:31.83ID:E5TnD1wu0
ValueToPixelPositionでできました。
Chartは情報が中々得難いですね。
Excelのグラフのがよかったかな。
2021/09/11(土) 19:09:47.10ID:Sf7FbZfWa
>>128
今それを書こうと思ってた
まあチャートなんか使ったことないんだけどねw

佐藤さんて人がchmを作ってくれてるよ。
それを見たら1分でそれにたどり着いた
http://www.kanazawa-net.ne.jp/~pmansato/
2021/09/11(土) 20:53:38.53ID:E5TnD1wu0
>>129
貴重な情報源ですね。ありがとうございます。
131デフォルトの名無しさん (ワッチョイ 66b5-wHYb)
垢版 |
2021/09/11(土) 21:52:55.11ID:8euuf7tr0
Visual Studio 2019でC#の単体テストのプロジェクトを新規作成する場合、
MSTest
NUnit
xUnit
と三つあるのですが、どれがお勧めですか?
最も一般的なのを教えてほしいです。

ちなみに、OSはWindows 10で、.NET Coreを使い、
GUIを用いないデスクトップ・アプリケーションのテストをしたいです。
2021/09/11(土) 22:02:13.98ID:xnT6+evKa
MSTest以外
2021/09/11(土) 22:21:42.85ID:8euuf7tr0
>>132
では、xUnitにしてみます。
ありがとうございました。
2021/09/15(水) 01:25:28.31ID:YP1Us53j0
単体テストで使うAssert()などのコードは、
バージョン管理ツールで保存するときは一緒に保存しますか?
単体テストで使うコードは本番環境にも入れたままにするのですか?
2021/09/15(水) 01:45:24.08ID:BObvHHa10
if(debugger.isattached)debugger.break();

みたいにやればデバッガとつながってるときだけ止まるので入れておいても害はない
2021/09/15(水) 02:21:57.32ID:Amlrkkbp0
>>134
バージョン管理するのは当然
単体テストはプロジェクトを分けるだろうから、本番環境にデプロイされることはない
2021/09/16(木) 01:15:18.28ID:KiAri4wH0
>>135-136
ありがとうございます。
デバッガーに繋がっているときだけ止めれるので入れておいても害はないけど、
プロジェクトを分ける場合は本番環境には入れないんですね。
2021/09/16(木) 08:11:11.63ID:l6vfv8u30
先生 インスタンスメンバーにアクセスしないメソッドはstaticにマークしたほうがいいんですか?う゛ぃじゅあるすたじお先生がそう言ってるんですけど
2021/09/16(木) 08:31:28.52ID:1kK4YF2S0
設計が悪いと、遠回しに言われてるんじゃないか
2021/09/16(木) 12:32:37.57ID:f8nFECPPa
>>138
むしろ「それ」をあえてインスタンスメソッドにする必要があるのか、
と考えるべきだろうね。

普通はないはずだと思うけどあると確信できるなら別にいいんじゃないの?
普通はないはずだと思うけどねw
2021/09/16(木) 13:41:21.65ID:l6vfv8u30
>>139
>>140
わかりました先生!
2021/09/17(金) 02:16:35.15ID:C7hZqBxt0
ttps://www.youtube.com/watch?v=6pF07zSHVjA
さっきまで見てたのはこれ
2021/09/18(土) 11:42:46.32ID:hxUth2PJ0
いい動画見つけてくるやん
2021/09/20(月) 10:51:22.93ID:nPFDN3tP0
C#での非同期処理のキモがハマりどころも含めてわかりまくりの決定版みたいな記事どっかにない?
2021/09/20(月) 11:07:36.88ID:V39ohWuW0
あるよ
2021/09/20(月) 12:46:14.36ID:+AHvFjk8M
>>144
気軽に建てたスレッドの99%はバグってるので安心して欲しい
2021/09/20(月) 15:03:43.99ID:qjcSqOKx0
c#の非同期処理の解説書あったべ オレンジ色の
148デフォルトの名無しさん (ワッチョイ f72f-fBlf)
垢版 |
2021/09/20(月) 18:11:02.65ID:IjMClDHV0
>>146
でもわたしはあなたの頭がハゲってるのが心配なんですよ
2021/09/20(月) 18:32:52.96ID:aa1o0gq5a
毛はあるよ
2021/09/20(月) 18:33:29.97ID:gtjvoIz80
>>148
年齢と髪の毛が非同期
2021/09/20(月) 19:33:21.44ID:ikLxeDh90
>>144
https://www.kekyo.net/async
俺はこれが参考になった記憶あるな
調べたのって何年も前だから、もっと良い記事あるかもだけど
2021/09/20(月) 20:53:43.86ID:gtjvoIz80
>>144
スレッド
注意点一覧

・シングルコアで動くか?
・応答がないときに自決するか?
・失敗時のメモリリークはないか?
・タイムスケジュールはあるか?(例:1分の内AスレッドはX秒、BスレッドはY秒等)
・生存確認方法はあるか?
・実行中の状態は取得できるか?
・ログは出力できるか?
・最大使用メモリは把握できているか?
・失敗時のリザルトの受け取り方法は適切か?
・処理が複数失敗する可能性は考慮できているか?(例:ファイルオープン成功→ファイル書き込み失敗→ファイルクローズ失敗→tempフォルダ削除成功のとき何が返る?)

決めるのが面倒なら使うべきでないと思う
2021/09/20(月) 20:55:06.48ID:gtjvoIz80
・本体終了時に終了できるか?

もあった
2021/09/20(月) 23:39:01.96ID:nPFDN3tP0
>>151
おお、これは素晴らしい
ありがとうありがとう
2021/09/21(火) 00:20:00.53ID:wZ9Exopu0
c# プログラマの書いたコードは美しい音楽のようだった。

タリバンは音楽家を処刑してるので、c# プログラマを対象に加えるべき。

c# って普通に考えたら音楽の符号だし、c# プログラマがすすめてくる「リーダブルコード」って本はどう見ても音楽関連。

https://i.imgur.com/nmlX1tw.jpg
2021/09/21(火) 00:36:08.07ID:Rfyn90AC0
※個人の感想です
2021/09/21(火) 05:45:16.61ID:Ke/ADbP50
率直な質問です
C#と.NETを一通り習得するのにどれくらい時間がかかりますか?
2021/09/21(火) 08:28:39.59ID:Tfcqtuvs0
>>157
自分の場合プログラム経験無しから「独習c#」を概ね理解しながら独学で読み進めるのに3ヶ月かかった。
LINQ やTaskなどは実践や実務でないと本だけでは習得は難しいと思う。
2021/09/21(火) 09:50:09.14ID:CRn+9siHD
>>152
一般的なスレッド生存確認方法ってどんなの?
2021/09/21(火) 10:40:19.83ID:iEeiy+NhM
>>158
それな
実際どういうコード組んでるかとか不文律の部分がてんでわからん
型の宣言にしたって最初にまとめておいたほうが良いのか、なら使い捨て変数なら使うところで良いのかとか
2021/09/21(火) 11:30:25.65ID:tDmaS64ca
まあ3か月である程度モノにできる人なんているとは思うけど
特別な才能の持ち主だけだと思うからそこは真に受けない方がいいと思う
2021/09/21(火) 12:21:47.37ID:Tfcqtuvs0
>>161
まあ不安が無くなってきたのは、2周目の読破が2ヶ月、3周目が1ヶ月で、合計半年過ぎた頃ですけどね。
c#もバージョンが上がって機能が増えて、初見さんには段々難しくなってきてると思う。
2021/09/21(火) 14:33:26.01ID:MozgKoB30
先生質問です。Bitmapの保存でエラーです
問題を単純化するために空のBitmapを保存して試して見たところ再現したので貼ってみます
デスクトップを始めとして特定のフォルダにだけ保存できません!
新規に作ったフォルダは大丈夫です。以前からあるフォルダでも保存出来るものもあります
セキュリティの関係かと思い、フォルダ右クリ→プロパティ→セキュリティのタブ で
比較したのですが全く同じであるにも関わらず一方だけ保存できません(ちなみにwin7)
VisualStudioのdebugフォルダの中だと保存可能です
考えられる原因、なにかありますか?

using (Bitmap bmp = new Bitmap(100, 100))
using (Graphics g = Graphics.FromImage(bmp))
{
var fullPath = "";
fullPath = @"E:\SS\aa.png";//× このフォルダの名前をSSSに変更すると〇
//fullPath = @"SS\aa.png";//〇 相対パス(debugフォルダ内)
///fullPath = @"F:\test\aa.png";//〇
//fullPath = @"E:\SSS\aa.png";//〇
//fullPath = @"C:\Users\(ユーザー名)\Desktop\aa.png";//×

bmp.Save(fullPath, ImageFormat.Png);
//↑ここでエラー
//System.Runtime.InteropServices.ExternalException: 'A generic error occurred in GDI+.'
}
2021/09/21(火) 15:05:39.31ID:MozgKoB30
>>163です
追加です
C:\Users\(ユーザー名)\Documents\aa.png ×
C:\Users\(ユーザー名)\Pictures\aa.png ×
C:\Users\(ユーザー名)\aa.png 〇
2021/09/21(火) 15:17:44.97ID:MozgKoB30
>>163 追加です
using (Graphics g = Graphics.FromImage(bmp))
を抜いても再現します
2021/09/21(火) 15:44:38.16ID:NZk8M9Nyd
>>163
発生したExternalExeptionのInnerExeptionプロパティを見ればヒントが入ってんじゃないの
2021/09/21(火) 17:05:44.52ID:iohS1gPI0
typoしてんじゃね?と実験してみたら存在しないフォルダ名を指定していたら System.IO.DirectoryNotFoundException が投げられるのか
手元じゃ再現しないからわからんなぁ
Environment.GetFolderPath(Environment.SpecialFolder.Desktop) とか使ってもダメなんかね?
2021/09/21(火) 18:10:56.43ID:nmJq7owza
>>163
たぶんシステム側のバグを疑ってるから質問してるんだろうけど、
それは自分で十分に検証した後でやること。

private void SaveDummyPng()
{
  var bmp = new Bitmap(100, 100);
  var path = AskUserForPngName();
  if (path != "") bmp.Save(path, ImageFormat.Png);
}

private string AskUserForPngName()
{
  var sfd = new SaveFileDialog();
  sfd.AddExtension = true;
  sfd.DefaultExt = "png";
  sfd.ShowDialog();
  return sfd.FileName;
}

なんでこの程度のことを最初にやらないの?
2021/09/21(火) 22:36:08.81ID:MozgKoB30
>>166
InnerExceptionPrefix " ---> " string
_COMPlusExceptionCode -532462766 int
さっぱりです><
>>167
最初はEnvironment〜を使っていたのですがだめでした
>>168
それ行けました
でもこれ↓はだめです

public static void Test_MakePNG4()
{
var bmp = new Bitmap(100, 100);
var path = @"E:\SS\aa.png";
if (path != "") bmp.Save(path, ImageFormat.Png);
}

なんでなのおおおおおおおおおおお
2021/09/22(水) 00:11:49.84ID:x9hzo5Uv0
・using (Graphics g = 〜) の外側でSave()を実行する
・Save()で直接ファイルに書き込まず、一度MemoryStreamに入れた後にファイルに書き込んでみる

思いつくのはこの辺りかな
2021/09/22(水) 00:15:18.25ID:Wj4PKJ5V0
>>169
できたときとできないときのpathってデバッガで見たとき違った?
2021/09/22(水) 00:47:04.48ID:FM+g1li10
>>169
そもそも同じディレクトリにテキストファイルは生成出来るの?

public static void Test_MakePNG4()
{
var path = @"E:\SS\aa.png.txt";
using (var writer = new StreamWriter(path))
{
writer.WriteLine("こんにちは");
}
}
2021/09/22(水) 01:01:57.27ID:Orudko8V0
>>169
https://stackoverflow.com/questions/33534740/a-generic-error-occured-in-gdi-saving-bitmap-to-desktop
2021/09/22(水) 01:33:31.16ID:7jHG7vlFa
>>173
w
見て損した
2021/09/22(水) 01:40:01.68ID:7jHG7vlFa
>>172
っていうか普通のセンスの人ならまず

(1) コードで指定しているパスのディレクトリをエクスプローラの
アドレスバーにコピペして開けるかどうか確認

(2) 開けたらそこで何等かのファイルの新規作成が可能かどうか確認

このぐらいはやるよね。

当たり前のことをやらずにエラーが出ます、どうしてでしょうって言われても知らんがなとしか
2021/09/22(水) 01:56:12.54ID:Wj4PKJ5V0
SSフォルダが無いだけな予感?
2021/09/22(水) 04:40:06.14ID:GGT0XQOL0
先生、解決しますた・・・
忘れていました、、、うちのPCには暴れん坊のアバストさんがいることを・・・・
あいつ、最近勝手にランサムウェアシールドっていうのの保護対象にE:\SSやデスクトップを追加してたみたいで・・・
ぐぐってみたら同様に勝手に保護対象を増やされたという報告がいくつか

>>172先生が当たりでした
System.UnauthorizedAccessException: 'Access to the path 'E:\SS\aa.png.txt' is denied.'

やばそうな常駐アプリは切って再起動して確認してたつもりが
なんと一番やばいアバストさんがそのままだったという愚かさ
先生方お騒がせしました・・・
2021/09/22(水) 06:47:06.99ID:Wj4PKJ5V0
おお、そういうこともあるのか
2021/09/22(水) 17:41:14.68ID:UxQCWMGf0
そういやマカフィーもVSでC++のデフォルトテンプレのHello Worldをデバッグコンパイルするだけで、
ウィルス認定で50%以上の高確率で削除するしなw

winに最初からあるDefenderの方が誤動作少ないし機能も十分な気がする。
2021/09/22(水) 17:44:26.85ID:oFL52ARd0
プログラマでありながらアンチウイルスソフトに頼ってる奴は恥を知れよ
2021/09/22(水) 17:51:55.03ID:iQc20bnI0
勤めたこと無い奴にはわからんだろうな
2021/09/22(水) 18:02:03.45ID:olBznEii0
>>180
w
2021/09/22(水) 18:06:10.53ID:Vihg9CWp0
今はもうdefenderにtrapsとかcybereason組み合わせるのとかが主流だろ
2021/09/22(水) 19:06:33.90ID:H7s1JKhea
要するに>>169に書いてることは嘘だよね。
>>168でサンプルまで書いてやれと言われてる当たり前の検証をやってない。

批判されるべきはそういうところでしょ。
単なるうっかりなら誰にでもある。
2021/09/22(水) 19:22:15.10ID:x9hzo5Uv0
粘着しすぎ
2021/09/22(水) 19:30:17.32ID:BIVRjYoPd
>>184
しつこい
2021/09/22(水) 20:59:35.34ID:ykEJ9q7La
>>185-186
という粘着。
まだこんな自分棚上げの2ch脳的思考が染みついちゃってるお方いるんだね
2021/09/22(水) 21:17:53.61ID:3pWwqqR20
ところで、どの書き方が好き?
コーディングルール云々は別として好みの話ね
(1) Hoge hoge = new Hoge();
(2) var hoge = new Hoge();
(3) Hoge hoge = new();
2021/09/22(水) 21:32:29.48ID:vBUUQQ5hM
hoge嫌い
190デフォルトの名無しさん (ワッチョイ f737-tt/w)
垢版 |
2021/09/22(水) 22:51:39.25ID:d5y6nh1w0
じゃあ2で
2021/09/22(水) 23:31:30.21ID:SH+Gpd0ma
Piyo piyo = new Piyo().piyo;
2021/09/23(木) 00:08:14.65ID:e9nBPEnq0
var hage = new Hage(light)
193デフォルトの名無しさん (アウアウウー Sa5b-hED7)
垢版 |
2021/09/23(木) 00:18:07.56ID:1QHTb9H7a
Hoge hoge();
2021/09/23(木) 00:22:45.17ID:W+8jwCREd
>>188
2
2021/09/23(木) 02:40:16.71ID:xSNs6jtp0
>>188
varが使いたいから(2)で統一。
196デフォルトの名無しさん (ワッチョイ d75f-P0JL)
垢版 |
2021/09/23(木) 06:17:51.94ID:knB3B2Kp0
3だな
2021/09/23(木) 10:39:33.85ID:k5aXOyOM0
4バイトも節約できるんだから3に決まっとろうが
198デフォルトの名無しさん (ワッチョイ 775f-4bEA)
垢版 |
2021/09/23(木) 10:45:10.69ID:zah9lHsX0
1か3
varはjsっぽくていや
2021/09/23(木) 10:48:49.49ID:A5zZg67+0
>>188
(2)
2021/09/23(木) 11:28:35.90ID:oS4wzjRX0
>>198
型推論と動的型付けはまったくの別物だぞ
2021/09/23(木) 11:34:40.89ID:dUOklB1+M
>>188
(3) なんて書けんのか?
って思ったらC# 9.0からの機能なんだな
(2) でいいと思うんだがなんかメリットあるんか?
202デフォルトの名無しさん (ブーイモ MMcf-fBlf)
垢版 |
2021/09/23(木) 11:56:33.67ID:acEFt2vDM
>>188
Javaやってるから(1)だ。

Javaだと(1)、C#だと(2)、のようにわざわざ使い分けるのが面倒で嫌い。
2021/09/23(木) 11:58:17.37ID:8wTnR9dmM
Javaはvar使えるぞ
204デフォルトの名無しさん (エムゾネ FFbf-hED7)
垢版 |
2021/09/23(木) 12:34:19.60ID:7tGJmFKPF
auto がいいな
2021/09/23(木) 12:52:13.66ID:mH17AHdd0
varは使わなくなったな、書き捨てのコードなら速く作業終わってよかったんだけど
後で保守することになって、何の型だかぱっと見て分からない、結局書き直す羽目になる
二度手間
2021/09/23(木) 13:06:25.13ID:GXKXc62za
variant型
2021/09/23(木) 13:36:37.01ID:tEWlRRfOM
>>205
まさかと思うけど印刷したリスト見てデバッグしてるとかじゃないよね?
2021/09/23(木) 13:37:43.63ID:oS4wzjRX0
>>205
varの上にカーソル持って行ったらツールチップで型が表示されるけど
2021/09/23(木) 14:16:06.38ID:lUK0l/hC0
Vim使いの人が同じような理由でvar嫌がってたな
まぁVim使いに合わせる訳にもいかないからそのままにしたけど
2021/09/23(木) 14:22:03.84ID:lUK0l/hC0
(Vim使いはC#じゃなくてC++のautoの話だったかも)
それにvar使わないとジェネリックとかで複雑な型が出た時書くの面倒だからね
それに型が変えられたら書き直さないといけないし
2021/09/23(木) 14:25:27.53ID:+1CY5Q9Y0
>>201
聞いて驚けよ
varの三文字分短くなる
俺も今知った
2021/09/23(木) 14:28:02.99ID:+1CY5Q9Y0
VSCodeですらインテリジェンスなのにVim男は化石すぎるな
2021/09/23(木) 14:32:54.37ID:CUMa33xsd
>>205
秀丸でコーディングしてんの?
2021/09/23(木) 14:37:00.53ID:dUOklB1+M
>>211
それを言うなら空白も1つ減るから4文字分だろ
4バイトとか言ってたアホもいるけどw
2021/09/23(木) 14:46:20.44ID:lUK0l/hC0
>>201
(3)の書き方は俺も今知ったな
まぁ元々は
private List<WeatherObservation> _observations = new List<WeatherObservation>();
って書いてたのが
private List<WeatherObservation> _observations = new();
と書けるようになるってことみたいだね

ローカル変数でそう各メリットは少ないかもだけど、今は(2)に慣れてるだけだろうから、そのうち(3)になってくのかも
2021/09/23(木) 15:27:13.76ID:o2KvPEYta
VSさんがしきりにvarはやめろ型名書けって囁いてくるからVS使ってる時だけHoge hoge = new();だな
VSCodeのときは脳死でvarって打ってる
本音ではconstって打ちたい
2021/09/23(木) 15:41:02.12ID:oS4wzjRX0
>>216
俺のVSはvar使えって言ってくるけど
2021/09/23(木) 16:30:44.15ID:tEWlRRfOM
>>215
長たらしい型名を2回書きたくないと言うのはわかるんだけどそれはvarで充分だと思うんだよね
new()じゃなくてメソッドがインスタンス返すような時はvar使わざるを得ないしマジでメリットが4文字減るだけにしか見えない…
2021/09/23(木) 16:44:32.43ID:oS4wzjRX0
>>218
普段はvar使ってるけど>>215の例みたいにフィールドとかプロパティの初期化にはnew()が便利だなと思った
2021/09/23(木) 16:51:19.32ID:VgSYdOn80
varが使えないところで使えってことなんだろうけど
正直そこまでしてタイプ量を減らす意義が見出せん

varの本来の使い方はLINQなんかでの匿名型なんじゃないのかと
2021/09/23(木) 16:51:37.14ID:tEWlRRfOM
>>219
ああ、なるほどフィールドとかだと
private var _observations = new List<WeatherObservation>();
って書けないのか
ちょっとググったら確かに実装がめちゃ大変そうだな
https://stackoverflow.com/questions/4461597/why-cant-class-fields-be-var
222デフォルトの名無しさん (ワッチョイ d75f-P0JL)
垢版 |
2021/09/23(木) 17:00:18.43ID:knB3B2Kp0
十分とか言ってるけど215のってvar使えるの?
2021/09/23(木) 17:01:07.90ID:PpSx1KBx0
私はあの中からは選ばない、絶対に
224デフォルトの名無しさん (ワッチョイ d75f-P0JL)
垢版 |
2021/09/23(木) 17:01:12.39ID:knB3B2Kp0
じゃあ3のほうが統一できるメリットあるじゃん
2021/09/23(木) 17:12:04.49ID:Sp5Iyysf0
new以外の関数からの戻り値を受けるのにvarが使えるから共存するだろ
2021/09/23(木) 17:31:12.69ID:+1CY5Q9Y0
>>216
設定で変わるんですが
2021/09/23(木) 19:02:03.53ID:sP+rEUVs0
私は(3)にしてます
慣れもあってか(2)のほうが書きやすいですが
githubとかでコード見る場合に関数の戻りをvar書かれると型がわからない
VS以外で読み書しないなら(2)でいいと思います。
2021/09/23(木) 20:01:59.44ID:O4CJNIQl0
>>216
え?
MSはvar推奨じゃなかった?
2021/09/23(木) 23:00:18.51ID:/ClkVF3E0
>>228
プロジェクトによって違う
230デフォルトの名無しさん (ブーイモ MMde-DBkT)
垢版 |
2021/09/24(金) 04:58:42.78ID:y2XYMU1vM
StyleCopで設定するんじゃないの?
2021/09/24(金) 05:56:28.56ID:qfZk0bKT0
>>188
同じ事を何度も書かないってルールで(1)は無い。
(3)も微妙に無いかな。定義だけメソッドの外、=new()だけ処理前にするとか。
2021/09/24(金) 08:28:43.49ID:NPGccV1b0
そんなマイルールあるとプログラミング難しそう。
233デフォルトの名無しさん (ブーイモ MMde-DBkT)
垢版 |
2021/09/24(金) 09:33:22.65ID:irV+RdEOM
マイルールで書いてもボタン一発でコーディングルールに沿ったのに変換してくれればおk
2021/09/24(金) 09:39:21.92ID:5BpUyVVQ0
>>228
推奨してるけどMS自身はvar絶対使わないマン
ギフハブみてみ
2021/09/24(金) 09:49:52.41ID:/LssCrRN0
>>234
そうだっけ?
と思って検索したら普通に使ってるですけお??
https://github.com/microsoft/winget-create/blob/a230d51ec9a64f0e980c10bba4941cb09def5cd6/src/WingetCreateCore/Common/GitHub.cs#L54
2021/09/24(金) 10:03:35.81ID:5BQj5+hr0
>>234
説明用にわかりやすく書いてるだけなんじゃあ
2021/09/24(金) 10:14:18.30ID:U+wMsrW6M
>>235
135: Dictionary<string, string> contents = new Dictionary<string, string>();
みたいな行もあってあんまり気にしてない感じやね
編集した時期が違うんだろうけど
238デフォルトの名無しさん (ワッチョイ 175f-6iP1)
垢版 |
2021/09/24(金) 10:24:15.05ID:/Uk5P+XR0
new()が使えるならnew()
それ以外はvarが最強
2021/09/24(金) 10:49:29.55ID:Qkaih1UNa
スタイル統一って本当に無駄な努力だよな
ただの見た目、書き方で迷うより同じ時間を使ってそもそもこの変数を消せないか、みたいな方向で悩みたい
2021/09/24(金) 11:31:51.86ID:eAv8Xp0Q0
>>234
みてみ
https://github.com/dotnet/aspnetcore/blob/277e42f4dcf1ee41c8a1b61a6aaa3e17ef15a1d9/.editorconfig#L36
2021/09/24(金) 13:33:19.92ID:5RECe5Rpa
>>239
そんなことはないと思うけど程度問題だね。
何であれ手段を自己目的化してしまうのは確かに愚かだ。

そんなことよりスレ違いだのなんだの他人のやることに
いちいちケチをつけないと気が済まないいつもの数人が静かなのが笑えるねw

ああいう人たちはその自分の欺瞞性に嫌気がささないものなのかw
242デフォルトの名無しさん (エムゾネ FF32-kEnG)
垢版 |
2021/09/24(金) 14:32:17.00ID:6iUyOY+3F
スレチ警察ωωω
2021/09/24(金) 18:05:14.38ID:5BpUyVVQ0
>>235>>240
派遣が書いたやつだろうな
2021/09/24(金) 18:11:46.80ID:O5E8wnHVd
>>243
悔しいね
2021/09/24(金) 18:57:42.89ID:w2u8w+pK0
>>243
糞ダサい
2021/09/24(金) 19:48:31.43ID:aNx0zmzyp
>>243
ばーwww
247デフォルトの名無しさん (エアペラ SD9b-OE0s)
垢版 |
2021/09/24(金) 20:03:25.45ID:KNT3aGoVD
ageておきますね
2021/09/24(金) 21:23:21.37ID:eAv8Xp0Q0
>>243
コーディング規約ですよw
249デフォルトの名無しさん (ワッチョイ 032f-f7S3)
垢版 |
2021/09/24(金) 21:38:44.12ID:RcC3+NL00
hageておきますね
        ______ 
      /     〇⊂⊃\
    /             \
   /                 ヽ
    l:::::::::               | 
    |::::::::::   (●)    (●)  o| 
   |:::::::::::::::::   \___/    .0|
    ヽ:::::::::::::::::::.  \/      ノ
2021/09/24(金) 21:59:31.97ID:Dq17+3pv0
hage.Dispose();
2021/09/24(金) 23:49:51.90ID:LxZpM9VS0
平日なのにわずか10分で否定されるのキツい
2021/09/25(土) 08:04:24.52ID:FSKWmZuJ0
配列関連をお勉強しとるんですが、
Array, Buffer, BitConverter, Collections.Genericのクラス
これらの他に見ておくべきクラスはありますか?
2021/09/25(土) 08:16:02.18ID:1B2aC0zA0
Dictionary
2021/09/25(土) 08:46:03.41ID:HriS4h5O0
List
2021/09/25(土) 10:24:06.98ID:BHEQVKdgM
>>253-254
それ
> Collections.Genericのクラス
だろ
2021/09/25(土) 11:36:42.78ID:+gmyYm6Y0
しいて言えばCollections.Generic全部だけど
何にでも使うものだからここだけお勉強しとけっての無さげ
2021/09/25(土) 12:46:07.75ID:utiZsGgVa
>>252
配列まわりだとSpan、Memoryあたりかな
コレクションまわりと拡大解釈するともう少し増えるが
2021/09/25(土) 13:14:02.37ID:HriS4h5O0
>>255
そうでしたっけオホホ
2021/09/25(土) 14:38:27.74ID:Ims+woa0M
SpanやMemoryは一通りモノ作れるようになるまではスルーでいいというか知らないほうがいい
厨二病のはじまり
2021/09/25(土) 16:31:09.85ID:YVyIn4WH0
SpanやMemory多発だと言語選択間違えてないか疑ったほいがいいな。
261デフォルトの名無しさん (ワッチョイ 9f24-2Lmd)
垢版 |
2021/09/25(土) 17:06:12.97ID:fbhVUQBc0
>>252
もう配列なんて時代遅れ
xmmレジスタで済ませるのが最先端だからSystem.Runtime.Intrinsicsを学ばないとオレにはついてこれないぞ
2021/09/25(土) 17:15:16.58ID:9oRN3Q4ya
先生、
>>261
がゴールと逆方向に独走してます!
2021/09/25(土) 17:23:02.02ID:IUkEhwfn0
そのまま行かせてあげましょう
2021/09/26(日) 15:18:24.34ID:ql2ts5nl0
Buffer, BitConverterってあまり使ったことないや
どういうときに使われるんだろ
画像とか扱いたい時?
2021/09/26(日) 15:29:09.22ID:beZMLKyb0
>>264
通信電文の解析とか
電文は通常ビッグエンディアンって決まりがあるので
2021/09/26(日) 21:02:40.12ID:gGZfowJe0
エンディアン変換めんどいよなぁ

たかだか2バイトのビックエンディアンをc#のshortに変換するだけでも
var dataLen = IPAddress.NetworkToHostOrder( BitConverter.ToInt16( buf, 32 ) );
で長すぎるんだよな。2バイトくらいだったら
var dataLen = buf[0] << 8 | buf[1];でもいいが、int幅なると記述量増えるし。

byte配列走査しているときはSpanを当てていることが多いから、Span<T>ももうちょっと使い勝手向上させて
int intLen = span.Slice(0,4).ToHostOrder();
みたいに書かせて欲しい
2021/09/26(日) 21:13:30.42ID:VX6MVIFY0
よくわからんけど拡張メソッドじゃあかんのか?
2021/09/26(日) 22:30:57.79ID:sbicFUHC0
拡張メソッドで対応可能だね
2021/09/26(日) 23:31:30.83ID:gGZfowJe0
い・いや、そうなんだけどね・・
車輪の再発明というか、作ると色々考慮が必要でとか、そもそもめんどいというか。
2021/09/27(月) 00:04:24.04ID:XMGm2liDa
まあライブラリで実装するほど汎用的というか需要がある処理じゃないって判断なんでしょうね。
つーか大昔からある宗教論争だけど個人的にはビッグエンディアンなんて
どっかのタイミングで追放してしまえばよかったのにw
つくづくこんなの考えた奴馬鹿だろとしかw

ところで、BitConverterってバイトオーダーは環境依存なのかリトルエンディアン固定なのかどっちなんだろう
2021/09/27(月) 00:19:20.50ID:OBbpWDI00
https://referencesource.microsoft.com/#mscorlib/system/bitconverter.cs,34

リトルエンディアン固定っぽいね
固定な癖にビッグエンディアンの実装してあるの謎だけど
2021/09/27(月) 01:04:33.98ID:lw6R4pVu0
BitConverterはちらっとソース見たらどっちのつもりだよこれって実装だったな
2021/09/27(月) 01:27:56.67ID:43Uiwmvz0
>>271のソースはビッグエンディアンのアーキテクチャの時は
BIGENDIANを定義してコンパイルして使うんでしょ
2021/09/27(月) 03:03:03.22ID:a10dBt+Nd
c#って機能的にはc++のメソッドを全部呼ぶことって出来ますか?

win32apiを弄っていて、当然ドキュメントは99%がc++なんだけど
dllimportとかを使えば全部の機能はc#からも使うことは出来ると思って良いのでしょうか?
それとも、言語仕様の壁があるから使えない機能も普通にあるのでしょうか
2021/09/27(月) 07:14:24.44ID:9HRv6vMlM
C++で作成したクラスのインスタンスメソッドが呼び出せなかったはず
DllImportで呼び出せるのはあくまでstatic相当メソッドのみ
2021/09/27(月) 07:49:13.10ID:VW3MkNv6M
環境決め打ちすれば無理矢理呼び出せなくなもないって感じ
https://qiita.com/tan-y/items/64711b244cf294d6bb9d
まあとてもおすすめできない
2021/09/27(月) 10:15:30.40ID:I8r9zhJi0
>>274>>275
アドレスさえ取得出来ればメンバ関数含めて全て呼べる
DllImportやGetProcAddresからはポインタ取得出来ないからそれを呼べると言えるかは微妙だが
メンバ関数は第一引数にインスタンスへのポインタが隠されてるだけの実態はただの静的関数だからdelegate* unmanaged[Stdcall]<void*, void>とかにキャストしてvoid*にオブジェクトポインタ渡せば正常に機能する
逆に言えば公開したいメンバ関数があるなら、第一引数にvoid*を沿えた静的関数にしてdllexportすればいい
2021/09/27(月) 17:06:27.12ID:yLuq9hY6a
double aaa = double.NaN;
bool bbb = (aaa == double.NaN) ? true : false; //bbb = false になる。えええ
bool ccc = (double.IsNaN(aaa)) ? true : false; //ccc = true になる
どうしてこうなるの?
2021/09/27(月) 17:16:06.27ID:xIAqABZoM
NaNは「数値ではない」ので、いかなる値と比較してもfalseになる
これはIEEEの規格で定められている
ゼロで割ったらいけないのと同じようなもんで、NaNの比較は原則やってはいけない
2021/09/27(月) 17:18:52.56ID:3tPBuYxM0
値がセットされてない状態が必要ならdouble?型使え
2021/09/27(月) 17:25:07.40ID:yLuq9hY6a
なるほど。厳しすぎるよ
(double.NaN == double.NaN)も成立しないのな
2021/09/27(月) 19:28:23.66ID:3UqjaTSrM
>>276>>277みたいなやり方もあったのか・・・
でもごめん276のQiitaを軽く読んだ限りだとちょっと怖くて&面倒くさくて使いたくない
どうしてもC++のインスタンスをいじらなきゃいけなくなったとしたら
従来通り無難にC++/CLIでラッパーを書くと思う
もう10年くらいそんなコード実装してないから書ける自信ないけど

おおもとの>>274への回答としては、一応条件付きでyes、ってことで合ってるよね?
C++で書かれたインスタンスのメソッドを呼ぶときには基本的には別途C++/CLIプロジェクトでソースを書き足す必要がある
その手間さえ許容できればC#で全部呼べる・・・はず
2021/09/27(月) 23:39:00.12ID:hzZ0wOco0
C#9の関数ポインタを利用したりMarshal.GetDelegateForFunctionPointerを利用したらどんなネイティブ関数も呼べるが(どちらも呼び出し規約設定可能)、
問題はそのDLL内の公開されてないメンバ関数ポインタをどう渡すか?に関してはC++同士でも独自に決めないといけない訳でC#どうこうの話ではなくないか?
2021/09/28(火) 20:06:35.50ID:HRlAR5zx0
こういうジェネリックの使い方ってありなん? 初めて見た

class Hoge<T>{
  Hoge2<T> hoge
}
class Hoge2<T>{
  Hoge3<T> hoge
}
class Hoge3<T>{
  T hoge
}
2021/09/28(火) 20:17:22.58ID:Y48RNilL0
特に意外なところもないと思うが…どこに引っかかったのか
2021/09/28(火) 20:26:34.83ID:v2L5F78s0
>>280
NaNを理解できない子にnullableとか鬼やな
2021/09/29(水) 16:52:08.52ID:7tgr6pt10
>>284
ダメなの?

class 人<T身長の単位>{
プロフィール<T身長の単位>
}

class プロフィール<T身長の単位>{
身長<T身長の単位>
}

class 身長<T単位>{
T単位 Value
}
2021/09/29(水) 20:09:33.13ID:b5nvBjNnM
たかが身長持つのにどんだけ長いの?
2021/09/30(木) 00:22:50.32ID:3U3ppoE90
身長は凡例だろうけど
身長ならdouble[m]で持っておいて
別の単位使いたかったらプロパティで良いじゃんって思った
2021/09/30(木) 00:41:35.99ID:dHFEc3IP0
>>288
サンプルにそんないちゃもんつけるなよ
2021/09/30(木) 02:07:44.30ID:046jA/pO0
>>287
階層深いといろいろ扱いにくくない?

サンプルに対してどうこういうのも不毛だけど、人を継承して学生やら料理人やら作ったとして学生はセンチで軍人はメートルで保持して、
さらにその身長を参照して数パターンの大きさの制服からちょうどいいものを選びましょうみたいになったらどんどんジェネリクスの範囲が広がる気がするというか、
そういう広がったものに直面してなんだこれ……ってなった

自分が直面してる問題については抽象化というかクラス設計失敗してるのが根本的な原因ぽいのだが
それをジェネリクスで覆い隠してたんだけどちょっと拡張しようとしたらコードがうんこと化した
2021/09/30(木) 06:46:26.61ID:ZF6SlbvnM
>>291
> サンプルに対してどうこういうのも不毛だけど
と言いながらどうのこうの言いまくってるとか頭おかしいのか?
2021/09/30(木) 07:29:22.71ID:9XdXBqfhM
初歩的な質問ですいません
PostgreSQLとNpgSQLを使用しています
仮にアプリケーションAとBがあるとして、Aからデータベースのテーブルが更新されたらBはテーブルの値が変わったという事を認識する事は可能でしょうか?

どのように実装するか全然分からないので参考例を探したのですが見つけられず、どのようなキーワードで検索すれば良いでしょうか

私はデータベースの知識も乏しいのですが、これはC#側で実装するのか、それともPostgreSQLの関数?で実装するものなのでしょうか?
2021/09/30(木) 07:34:17.27ID:/bi23GCfM
>>293
プロセス間通信を実装するか
お互いに一定時間毎にデータベースを確認しに行くかのどっちか?
2021/09/30(木) 07:43:36.18ID:PmOqVjFIM
相互だったらトリガーは使えないねぇ
レプリカを改造するとか

リアルタイム性が不要ならなんとでも
なるでしょう
2021/09/30(木) 08:47:25.00ID:KRgUV+h4a
>>293
notify listen
2021/09/30(木) 09:03:11.28ID:pU/yhshw0
>>293
簡易的なものならpostgresのNOTIFYとLISTENを使えばいいと思う

本格的なアプリケーションなら
Aがドメインイベントを生成してイベントストリームに流して
Bは該当のイベントストリームをサブスクライブして処理する
実装方法は色々あるのでイベントストリームやイベントソーシングで検索して
2021/09/30(木) 12:43:04.47ID:9XdXBqfhM
レスありがとうございます
一定時間毎にテーブルにアクセスしかないのかなと思いましたがNotify、Listenというものがあるのですので
まだ調べられていないのですが、レスの内容を見るにPostgreSQL側で設定などを行い、それをC#側に伝える?ということでしょうか
2021/09/30(木) 15:27:49.81ID:pU/yhshw0
>>298
BのアプリケーションでLISTENコマンドを実行
Aのアプリケーションでテーブル更新時にNOTIFYコマンドを実行(もしくはトリガーでNOTIFYコマンドを実行)
https://www.npgsql.org/doc/wait.html

Bは通知を受信するためのセッションを張って待っておく必要がある
2021/09/30(木) 16:57:34.68ID:d4OzmTGQa
ColorMatrixによる画像処理ですが、
ColorMatrix同士の演算を簡単にやる方法はないでしょうか?
行列なので単純に行列を展開して自分で計算して新しい行列Cを作ればいいのですが、それを簡単にやる方法は用意されてないのでしょうか?

c = ColorMatrixAA * ColorMatrixBB; //←これをしたい

例えば輝度とコントラストの調整をひとつの行列による一回の処理で行いたいのが目的です
https://dobon.net/vb/dotnet/graphics/brightness.html
https://dobon.net/vb/dotnet/graphics/contrast.html
2021/09/30(木) 20:47:43.57ID://goNiVi0
ColorMatrix自体には演算子とか定義されてないので
・自分で拡張メソッド作る(演算子じゃなくてメソッド呼び出しだけど)
・数学用のライブラリ使って5x5行列作って計算後にColorMatrixに変換する
2021/09/30(木) 20:54:04.25ID:PYXlGee40
その手の話は普通、OpenCvsharpでやっちゃうし
2021/09/30(木) 21:53:05.99ID:KOQxmqnZa
やっぱり自分で計算するしかないですか
アホっぽいけど二つの行列で二回処理することにします・・・
2021/10/01(金) 21:55:19.63ID:U8MKU26ia
ImageAttributesは既定では単位行列のColorMatrixを持っていて
SetColorMatricesを呼ぶたびにそれとの積が行われるのではないか...
などと妄想して確認してみたが全然違ったw

複数回呼んだ場合は単純に最後に指定したColorMatrixが使われるだけ

ところで、ImageAttributesもColorMatrixもPetzoldの本には出てないんだね
.NET 1.1からという何とも中途半端な
2021/10/03(日) 02:28:34.63ID:Z0tb8i1p0
ファイルハンドルのお勉強に入った者です

Flush()とFlush(true)の違いってなんですかね?
MSDNの説明を見てもぼんやりとしか理解できてないんですわ。

OSがディスク書き込みを完了したかどうかを手軽に確認する方法ってあるんですかね?
2021/10/03(日) 05:04:05.02ID:36j27UhR0
>>305
Flush(true)は.NETのIOバッファをクリアした後、
Win32API の FlushFileBuffers() を呼び出す
2021/10/03(日) 06:08:02.83ID:VkicH7XjM
>>305
> OSがディスク書き込みを完了したかどうかを手軽に確認する方法ってあるんですかね?
ない
確実にやりたいなら専用のデバイスドライバ作ってやるしかない
OracleとかOSに頼らずにそう言うことをしてるものもある
2021/10/03(日) 08:16:38.62ID:uOSRriMT0
フィルタードライバじゃなくて?
2021/10/03(日) 11:59:00.54ID:C0Y98Dh4a
極論(でもないと思うけど)を言えばそもそもストレージ自体も
中でファームウェアが走ってるブラックボックスなので
電源が落ちても大丈夫という意味で書込みが完了したかどうかを知るのは
実は無理じゃないかという気もする
2021/10/03(日) 13:16:58.88ID:PZL9KPgcM
ストレージに依ってはライトスルーモードやキャッシュのバックアップ機能を持ってたりするよ
2021/10/04(月) 12:24:33.68ID:t5znYM1E0
C#でsvgファイルをPictureBoxに簡単に表示するにはどうすればいいですか?
デスクトップアプリ、WinForms、.NET Framework 4.7.2です
2021/10/04(月) 12:29:19.88ID:f7XWhib4M
skiasharpで画像化
2021/10/05(火) 14:08:06.36ID:zLIO0dk60
Cで言うプログラミング言語C、C++で言うプログラミング言語C++のような、
C#に於けるバイブルのような本はありますか?
2021/10/05(火) 14:24:04.77ID:ZBwOALw00
あります
2021/10/05(火) 14:38:06.71ID:9I5LwmYA0
たぶんあると思う
2021/10/05(火) 14:51:51.03ID:ByhXNLf3M
あるんじゃないかな?
2021/10/05(火) 15:25:13.51ID:+6dr6m14a
まちょと覚悟はしておけ
2021/10/05(火) 15:49:40.04ID:fKvZeqN00
>>313
C#はWeb情報が充実してるから本など不要
プログラミング言語全般に言える事だがC#は特にな
2021/10/05(火) 15:58:59.03ID:drC9SLLFa
cやc++と比べてc#は簡単だからな
javascriptもそうだけど素人でもすぐ使える言語は体系的に勉強する必要ないからバイブルも生まれない
2021/10/05(火) 17:06:47.13ID:knAaMuHc0
C++でバイブルってゆわれれてるやつのC#版かえばいいんじゃあ
2021/10/05(火) 17:18:03.86ID:0DXUgl8X0
>>320
ストラウストラップがC#本も書いてるの?
2021/10/05(火) 17:24:46.00ID:x+J38TE90
>>313
くじゃくとへび
2021/10/05(火) 19:11:51.38ID:XzAOFOmy0
>>319
素人が個人ソフト作る程度なら確かにその通りだが(その規模だとC++ですら同様だと思うが)
結局JavaやC#みたいなガチガチのオブジェクト指向言語はチーム開発するための言語だからちゃんと体系的に学んでもらわないと周りが困るわ
324デフォルトの名無しさん (ワッチョイ b3e6-SE+q)
垢版 |
2021/10/05(火) 19:26:34.70ID:ZTvxcm/T0
データベース接続はDIする必要ないですか?
接続文字列変えるだけでデバッグできるから

エンジンまで変えるのは丸ごと作り直しみたいなもんですよね
2021/10/05(火) 21:14:04.84ID:ghIUET7g0
>>313
あります
2021/10/05(火) 21:23:49.56ID:9I5LwmYA0
たぶんあると思う
2021/10/05(火) 21:23:58.36ID:AV+fS/qTa
>>323
人事とかPMに訴えた方がいいよ
まともなスキルある奴雇えとかコーディングルール決めろって
328デフォルトの名無しさん (アウアウウー Sa27-jOtc)
垢版 |
2021/10/05(火) 22:38:49.32ID:JbR3YU6Oa
人事が変なプライド持ってて
漏れの選んだ社員にケチつけるのか?みたいな反応する香具師いるよな
2021/10/05(火) 22:52:12.77ID:0DXUgl8X0
いないよ
2021/10/05(火) 23:20:10.65ID:B8av3SU70
いないよ
心が汚れてて、相手の事を悪くしか言えない人ならたくさんいるけど。
2021/10/06(水) 02:33:19.03ID:+8N1Gjb90
相手の事を悪くしか言えない人って、心が汚れてる人率より、外因で心が壊れた人率が高い気がする。
2021/10/06(水) 11:54:17.59ID:xpgZiC6t0
トンボ佐藤くんみたいなのは割といると思うんだよね
2021/10/06(水) 19:28:18.02ID:7g8s0ol20
>>319
C++欠点をよく考えた上でのC#なので扱いやすくできてるが
複雑な処理でも簡単に記述できてしまうから
分からないで使うと即ゴミコードになるな
2021/10/06(水) 20:06:14.47ID:hnIPmtr3D
>>319
言語仕様の簡単さでいえばCの方がはるかに簡単では
2021/10/07(木) 16:47:06.58ID:CwvFVgnXr
.NETやってる人って.NETerでいいの?
2021/10/07(木) 18:35:51.64ID:cYPPu0Aja
C#erかF#erでいいんじゃない?
VBNerはもうどこにも居なくなった
2021/10/07(木) 19:14:34.93ID:/wyuL6I60
未だにVB系さわってるのって、VB6を未だにメンテしてるか、ExcelやAccessとかのVBAさわってるかぐらいなんだろうなぁ感
2021/10/07(木) 20:44:32.98ID:BpOLUlLQM
残念!ジャップランドは未だにVB大国です!
2021/10/07(木) 20:53:21.13ID:ovEQBNKZ0
チョン君とこなんて未だにActiveX全盛なんだよな
2021/10/08(金) 00:31:05.70ID:4fmstXU10
>>337
vbはvbで普通に便利だぞ
c# 使いはvbに絡み過ぎ
2021/10/08(金) 00:41:25.26ID:cNGxtErT0
>>339
全盛というのが本当だとすると、そんな奴らに国民的アプリの覇権を奪われるわーくには一体・・・
2021/10/08(金) 08:17:06.25ID:JBSLfXe/a
VBNはだめだめだけどXMLリテラルだけは評価してる
これC#に輸入してJSXみたいなの作れたら面白そうじゃないか
2021/10/08(金) 17:18:52.57ID:8wKz62k10
xmlリテラルとかゴミやないですか。
痛恨の大失敗でやめたいと思ってるって記事どっかにあったような。
2021/10/08(金) 18:41:33.81ID:JBSLfXe/a
なんでやreact最高だろ
2021/10/09(土) 12:41:23.75ID:YzP7ITOe0
gmailをSMTPで受信して特定メールの到着お知らせするフォームアプリ作って常駐させたんだけど
win10が勝手にお知らせの小窓をスライドしてくるわ
便利だからいいんだけど何に反応してんだこれ
該当メール到着したら、ボタンのTextにメールの件名表示させるぐらいの消極的な動きしか指定してないのに
2021/10/09(土) 12:45:13.92ID:YzP7ITOe0
あーライブラリ使ったからそっちでやってくれてるんか
なんだなんだ
2021/10/09(土) 13:04:35.72ID:eViAYkBe0
>特定メールの到着お知らせ
俺もそれ欲しい
こっそり公開してほしい
2021/10/09(土) 13:15:16.93ID:lIbPNz3ra
ていうかメーラーに通知機能ないの?
2021/10/09(土) 13:23:12.78ID:pZa/ctFU0
特定ワードに反応してアクション起こすとかそんなんじゃね
2021/10/09(土) 14:21:50.50ID:qxPD7okza
smtpでメール受信だと?
2021/10/09(土) 15:06:11.95ID:g63EbBfG0
Windowsで通知系はレトロにタスクバー点滅が邪魔にもならず気付かない事も無くで攻守最強だわ
User32のFlashWindowExするだけで良いし
2021/10/09(土) 17:36:57.56ID:PtyovSUJM
>>350
メールサーバー動かしてるんじゃね?w
2021/10/09(土) 19:08:36.90ID:YzP7ITOe0
IMAPの間違いすんまそん
2021/10/11(月) 00:43:06.74ID:OyBgzLep0
webのクライアントアプリケーションを作るのは
一昔前はWebbrowserコンポーネント一択でしたが
今は何が最適ですか?
2021/10/11(月) 00:59:50.46ID:Lk1R0fNeM
C#やめてElectronかな
2021/10/11(月) 01:23:43.40ID:19drLHQW0
>>355
スレチ
2021/10/11(月) 02:03:27.35ID:OyBgzLep0
C#を止めるのはちょっと・・・
調べてみたのですがwebbrowserコントロールを使うなら
Blazor、Chromiumの方が良いみたいですね
2021/10/11(月) 05:17:15.14ID:0dKcnAN00
TeamsはElectronやめてWebview2ですね
(Reactだけど)
2021/10/11(月) 10:42:11.34ID:CrvxK9gA0
ちょっと確認

Webview2を使えば、
C#で作ったデータを表として表示したい場合に
WPFのDataGridなんか使わずに
HTMLで表作って
WPFでそのHTMLを開いて表示できるってこと?
2021/10/11(月) 11:56:26.38ID:HCp7KTAvM
>>359
DOMを外から直接弄ることはできなくて、JSを生成して渡してやる必要がある
WPFアプリにしなきゃいけないという制約があるなら
、ぶっちゃけウインドウ全面にWebView2を貼って全部TypeScriptとReactで書いたほうがいい
361デフォルトの名無しさん (ラクッペペ MM86-Dp8J)
垢版 |
2021/10/11(月) 12:10:53.61ID:vWFS5H/AM
2じゃなくてもできるよね
2021/10/11(月) 12:33:40.30ID:jzd0UNog0
そこはAngularだろ。
いいぞ、Angularは
2021/10/11(月) 14:32:46.28ID:CrvxK9gA0
>>360-362
ありがとうぅ!
非常に(・∀・)イイ!!
ReactとAngularって人気を二分してるのかぁ

検索してみたら、どっちもいい
まるで「長澤まさみと新垣結衣、好きなほう持ってっていいぞ」と言われてるぐらいの興奮だ

しかし、
https://www.webprofessional.jp/react-vs-angular/
を読んだ結果、「ReactとTypeScript」を持ってくことにしました!

4年以上前の記事だから今と違うかもしれんけど、
「採用、学習、開発エクスペリエンス」の比較が決め手になった
単にWPFの代替品を探してるだけなんで、フレームワークの習得に時間をかけたくないんだよね
あと、JSXって考え方も気に入った、そうそう、埋め込みでいいよ
Jestって単体テストランナーにも期待してる

TypeScriptって.NETフレームワーク(C#, VB)やってた人には
純粋なJavaScriptよりも学びやすくなってるんだね
正に俺のための言語!←JavaScript超初心者

今月は忙しいんで来月あたりから始めようかなぁ、ワクワク
2021/10/11(月) 14:44:46.80ID:CrvxK9gA0
あと、これもGoogle Trendも参考にした
https://trends.google.co.jp/trends/explore?q=React,Angular

Reactブッチギリ、Angularの倍ある
韓国と中国という非英語圏がトップだから、
英語の動詞の"react"による検索は無視できるレベルと考える
365デフォルトの名無しさん (ワッチョイ 635f-GJBa)
垢版 |
2021/10/11(月) 15:01:16.88ID:9ecB130B0
動詞のReactは無視できないレベルで使われますが
2021/10/11(月) 15:11:02.37ID:FGMWwne90
Webview2ってローカルのhtmlファイル表示できないのか?
2021/10/11(月) 16:16:40.99ID:OHF2MwjAM
ちょうど似たような案件で開発環境考え中なので参考にさせてもらう
でもなるべくC#で書きたいんだよなぁ
>>366
ソースに含まれてるならプロパティで実行時にコピーする設定にしたら参照できたよ
2021/10/11(月) 16:52:41.34ID:MTDexHrBd
>>361
1のパフォーマンスの悪さは折り紙付きだし、asyncすら使えない。
2021/10/11(月) 17:04:47.50ID:CrvxK9gA0
>>365
もう〜、そんな過剰に "react" するなよ〜
(・・・上手い・・・じょうずい・・・)

2004年1月からの全期間で見てみると、結果は明らか:
https://trends.google.co.jp/trends/explore?date=all&;q=React,Angular

Reactが誕生した2013年頃から上昇し始めている
それ以前の変動が英語の動詞の"react"の寄与分だな
せいぜい平均2〜3%というところか
それは今の80%からすると「無視できるレベル」だ
これで分かったかね、明智君?

Microsoft Teamsってこの7月に
ElectronからWebView2に移行したのと同時に
AngularからReactに移行したんだね
https://youtu.be/nVAeiVCZHN0?t=23

時代はReact!
よし、これからは俺が日本のReactを牽引していくぜ!
(翻訳: みんなに一生懸命しがみついていくんで、どうか引き摺り回してください m(_ _)m)
2021/10/11(月) 17:07:28.50ID:FGMWwne90
>>367
ソースに含まれてるの意味がわからんが、>>359はできるってことで良いのか
ちょっとコード例教えてくれ

つかこれできないなら素直にWEBアプリ作るほうが良いよな
2021/10/11(月) 17:51:36.22ID:B+TWeiwt0
>>370
できるよ。
コード例微妙だな。俺はいつもembedIOってので組み込みサーバー立てる。
372デフォルトの名無しさん (ラクッペペ MM86-Dp8J)
垢版 |
2021/10/11(月) 18:09:27.15ID:fEXuFp6WM
結局大げさなシステムになるんやね
2021/10/11(月) 18:10:57.41ID:OHF2MwjAM
>>370
ごめんちょっとずれた回答だったかも
とりあえずexeから見えるところにhtmlが置いてあるなら
webView2.CoreWebView2.Navigate(uri)
のuriにフルパス指定すればローカルファイルの表示はできる
「WebView2 C# JavaScript 連携」でトップに出てくる記事を参考にした

テーブル出力は自分では試してないけど
・C#で動的にテーブルタグ吐いてhtml出力して表示
・連携したJS関数に流し込む
一応どっちでもできるんじゃないかな
2021/10/11(月) 18:13:42.64ID:Y5a6/ehC0
なんでそんなにブラウザ表示したいんだ?
もう普通のデスクトップアプリっぽいし
jsonでデータでも受信したらええんちゃう?
2021/10/11(月) 18:16:48.01ID:Y5a6/ehC0
もうね
正直メリット見えない
404NotFoundも出ちゃうかもしんないし
使わない提案はもう通らないの?
2021/10/11(月) 18:41:10.90ID:s1/xzaRS0
わからないのは世間知らずだからだよ。、
2021/10/11(月) 19:26:57.41ID:Y2Io6SNsa
それは違うと思うw

簡単なレポートみたいのをhtmlで吐くのは昔からあるし
印刷や保存を実装する手間が省けるメリットもあるけど
グリッドをブラウザに表示するメリットって何なんだろうね。

後でインタラクティブにしたくなったら困らないかなw
2021/10/11(月) 19:35:40.47ID:FGMWwne90
>>373
WebView2入れて試したけど、普通にできるな
https://docs.microsoft.com/en-us/microsoft-edge/webview2/get-started/wpf

>ArgumentException is thrown if the URL does not start with http:// or https://.
とか書いてるから、HTTP通信必須かと思ったわ
379デフォルトの名無しさん (ワッチョイ 635f-GJBa)
垢版 |
2021/10/11(月) 20:54:30.36ID:9ecB130B0
>>369
そのくらいの時期から他人のリアクションを見るのを楽しむような動画が流行ってるから何とも言えません
プログラミング言語よりYoutube動画のほうが影響力高いのはわかるよね
2021/10/11(月) 21:23:26.91ID:OHF2MwjAM
>>378
そのページも読んだはすだけどスルーしてたw

自分の場合はテーブル出力したいわけではなくleaflet.jsとの連携で、タイル地図以外のコンポーネントはわざわざブラウザで出力する必要なさそうなんで
やっぱり書き慣れてるWPF+JSかなー
TypeScriptイチから覚えるのダルいし
2021/10/12(火) 15:26:35.42ID:ZF5wsVEH0
>>375
404出るはず無いでしょ。
描画したいものをHTMLで作成するだけよ。

行列好きに結合した表示用テーブルとか、あとは、ユーザーに開放するテンプレートとかそういうのをHTMLにしておくと楽。
2021/10/12(火) 17:42:05.24ID:EJL/Izqi0
フォームにグラフを表示したいけどどのコンポーネントもイマイチだから
WebView置いてJSでグラフ表示ってのはやったことある
2021/10/12(火) 18:54:00.91ID:0O/vnGSn0
loadImageFromFileの所を書き間違えてるからエラーが出るんですが
どうやって//を置けばいいのでしょうか?
お願いします;;画像にフォルダの場所は載せてます。この場合どういう書き方をすればいいでしょうか?

https://imgur.com/a/oXtRtH9
2021/10/12(火) 19:23:54.97ID:phUpP4cx0
@
2021/10/12(火) 20:09:57.42ID:/K6fYQoh0
>>381
なんで?うっかりなかったら出るじゃん
2021/10/12(火) 20:22:34.47ID:8XilFzpp0
セミコロンで終わらない言語は発展しないの法則
387デフォルトの名無しさん (ワッチョイ 0b8e-o/se)
垢版 |
2021/10/12(火) 20:49:45.19ID:QVYC1igu0
Python
はい、論破
2021/10/12(火) 21:32:04.46ID:ZF5wsVEH0
>>385
自分が生成するものがうっかり無いことなんかあり得ないだろ。
2021/10/12(火) 21:55:51.15ID:/K6fYQoh0
>>388
え?それ全部ローカル前提の話でしょ?
ネットワークに一切つながらないスタンドアロンしか想定にない状態?

逆に今どきそんなもん作ってどうするんだとも思うが
2021/10/12(火) 22:07:59.93ID:/K6fYQoh0
ちゅーか
普通にブラウザの描画エンジンってあんまり上等に感じない
2021/10/12(火) 22:10:13.21ID:EJL/Izqi0
>>388
ダメだ相手にすんな
2021/10/12(火) 22:13:05.35ID:2QmYiCE70

スタンドアロンアプリにWebView使ったら404出るかもしれないから嫌だと言ってたのかと思ったが?
ネットワーク接続前提なら404出るのは仕方ない話じゃん?

>もうね
>正直メリット見えない
>404NotFoundも出ちゃうかもしんないし
>使わない提案はもう通らないの?
2021/10/12(火) 22:14:15.65ID:/K6fYQoh0
>>392
いや、俺の作るアプリはネットワークから取得ミスっても404出ないけど
2021/10/12(火) 22:21:33.48ID:ZF5wsVEH0
>>389
ローカル前提もなにも、アプリ内だよ。
自分で描画するのがめんどくさいものをWebView2で描画すんのよ。

>>390
IEコンポーネントは酷かったけど、WebView2コンポーネントは良いよ。

>>393
何言ってんの?
2021/10/12(火) 22:24:01.78ID:/K6fYQoh0
>>394
アプリ内って?
聞いたことない単語だけど
2021/10/12(火) 22:30:57.20ID:EJL/Izqi0
…だから相手にすんなって言ったのに
2021/10/12(火) 22:33:58.88ID:QANgax+i0
頭と心臓のネットワーク落として死ねよ生ゴミ
2021/10/12(火) 22:51:47.51ID:2QmYiCE70
>>393
取得ミスかどうかなんてどうでもいいよ。404出るって言ったのはあんた自身。
2021/10/12(火) 22:54:24.65ID:/K6fYQoh0
>>394
なんか描画が面倒くさいから使うって程度の割には色んな操作性を捨てることになりそうなのが気になるわ
2021/10/12(火) 22:55:18.17ID:/K6fYQoh0
>>398
ええ、スタンドアロンだと出ないって話でしょ
2021/10/12(火) 23:16:18.21ID:2QmYiCE70
>>400
そうだよ。そこに

>ネットワークに一切つながらないスタンドアロンしか想定にない状態?

とか言って絡んでたのがあんた。
2021/10/13(水) 00:17:38.68ID:CFiC4sln0
>>401
スタンドアロン限定って知らんかったけどどっから出てたん?
今どき旧石器時代に戻ったようなこと前提でビックリだよ
2021/10/13(水) 01:32:35.32ID:6SBvllEm0
何が言いたいの?
アホすぎて伝わってこない。
2021/10/13(水) 02:26:55.76ID:Pifc/W2c0
最初はhtmlの生成に失敗したときのことを言ってるのか?と思ったけど違うな
ということは根本的にすげぇ勘違いしてるっぽい
2021/10/13(水) 07:11:21.94ID:Rq0uNf9tM
参照先がネットワークだったってぐらいの想像力もないの?
406デフォルトの名無しさん (ラクッペペ MM86-G9cb)
垢版 |
2021/10/13(水) 07:18:08.40ID:62PXK7yQM
知的障害か統合失調症の自演にしか見えないんだがいつまで続くんだ?
2021/10/13(水) 08:00:40.97ID:LZVfzrgVd
>>405
参照先は自分が生成したものだよ。
2021/10/13(水) 08:17:25.36ID:yVINKNOR0
WebView使ったら勝手にどっかにネットワーク接続して404返すとか本気で思っていそう。
2021/10/13(水) 10:49:42.03ID:cOYoTsop0
使用目的がそもそも噛み合ってない
>>382が書いたグラフ描画みたいな一部の機能補助的に使う場合はアプリ内で動的生成なり最初から置いとくなりしたファイルを参照するだけだから404なんか起こり得ないってだけの話でしょ
想像力もくそもない
2021/10/13(水) 10:53:50.32ID:BauyxQla0
IEnumerableって、あいいにゅーめらぶるって読んで恥ずかしくない?
さっきまであいえにゅーめらぼぅって読んでたけど変える
2021/10/13(水) 10:55:31.06ID:cOYoTsop0
すっかり埋もれてるけど>>383は解決したのかな?
画像小さすぎて全然わからんから想像だけど単にエスケープすれば良さそうな気が
それか>>384も書いてる@表記使う
2021/10/13(水) 15:20:38.43ID:wD2JD8sf0
そもそも、404帰ったからどうだというんだ
アプリ組み込みで表示に使うっていうんだから、ローカルでもネットワーク経由でも
ページが表示できなきゃそれなりの対応するだろ
2021/10/13(水) 15:37:20.53ID:CZSq0BDAM
脳細胞が404
2021/10/13(水) 18:49:47.21ID:zjSrgiV60
404というのはWebサーバーのレスポンスコードのことか
そこには存在しないはずの鯖があなたに語りかけてきます404
415デフォルトの名無しさん (ラクッペペ MM86-Dp8J)
垢版 |
2021/10/13(水) 18:54:43.56ID:mAb+BQMQM
cdnのトラブルでレポート出せません!
つったらいいよ
2021/10/13(水) 21:07:41.34ID:p9sm+GPQ0
USBメモリでの提出も可とします
2021/10/15(金) 00:52:30.54ID:lY/ouxxs0
>>414
鯖は存在するのでは?
2021/10/15(金) 04:18:47.63ID:SAnCeg/e0
VScodeってdotnet runと毎回打たないと実行できないのでしょうか?
2021/10/15(金) 05:11:01.41ID:p2U7IjWk0
漏れは全言語で、拡張機能・Code Runner を使っている。
C# は知らないけど

右クリックメニューから、ファイル全体または選択したコード片を実行できる
2021/10/15(金) 05:37:00.11ID:SAnCeg/e0
>>419
Code Runnerをインストールしたのですが
Run codeを押すと
オブジェクトがないってエラーが出てしまいます。

https://imgur.com/a/ygTvbz9
2021/10/15(金) 22:34:52.11ID:wGyOajUNM
>>418
えっと、dotnet runが普通に動くC#のコードならF5キー押すだけで相当の動作をすると思うんだけど・・・
そういうことを聞いてるんじゃなくて?

C#のスレなのに「C#は知らないけど」とか言い出してるルビーガイジの人、いつもながら邪魔なので書き込まないで欲しいなあ
2021/10/16(土) 05:04:55.49ID:7Xm3g+2Y0
先生、windowsアプリを極めようと思ったらやぱーりC++あたりできたほうがずっといいですね
ちょっとがんばってきます
2021/10/16(土) 05:36:01.98ID:3zuBo2mk0
アプリを極めたいなら、外の世界を
知るべきだな。という事でWDKをやりたまえ
2021/10/16(土) 18:11:06.80ID:E3dVqkpq0
>>421
PCしょぼいのかデバッグだと時間かかるので
Run CodeでC#を実行したかったです
が以下のエラーが出ます
http://imgur.com/a/2Y0lORD
ありがとうございます
2021/10/16(土) 19:05:19.70ID:dV34p5Ts0
エラーは出ていないような
2021/10/16(土) 19:46:38.02ID:qQGMBw3HM
デバッグ・起動にかかる時間を減らしたいの?
CodeRunnerってソースコード(の一部等)を「便利に」実行するツールではあっても
「高速に」実行するツールじゃないと思うんだけど、
なんでそんなの使わなきゃいけないの?

・・・・っていうか419が諸悪の根源なんだろうけどさあ
「C# は知らないけど」とかほざいてる奴の書き込みにひっかきまわされて余計な回り道しただけだと思うよ
あなたVSCodeスレでもそいつの言うことを真に受けて意味も解らずヘンテコな環境改変やらされたでしょ
そのあげくまともに動く環境になってないんでしょ?
CodeRunnerまわりでやった作業は全部無駄だったと損切りして
おとなしく手元のテキストどおりの標準手順で勉強したほうがいいと思うよ
2021/10/16(土) 20:11:22.44ID:E3dVqkpq0
>>426
確かに長引きすぎました。申し訳ない。
この質問は下げて大人しくVisualstudioでやります…
2021/10/16(土) 20:13:13.33ID:C9cDoF0w0
まーたrubyガイジがやってしまったのか
2021/10/16(土) 20:32:31.99ID:37jU2CaJM
>>427
いやむしろあなたは被害者だよ・・・ご愁傷様

この板は・・・質問に便乗して
自分の偏った(RubyとかVSCodeとかの)知識をひけらかすことだけを目的とした書き込みをするガイジが約1名いるからなあ
質問者に無益どころか有害でしかないのが非常に邪悪で迷惑なんだけどさあ
2021/10/16(土) 20:59:52.80ID:oE54EQXy0
何を言われても自分は悪いと思ってないみたいなので、ひたすら無視するしかないだろうねえ
長くいる人は文章で判別できるんだけど・・・
初めての人や質問者を善意に見せかけて混乱させてるようにしか見えない
2021/10/16(土) 21:20:19.69ID:3leIlvbA0
>>429
その視点で見ると1名どころじゃない
432デフォルトの名無しさん (ワッチョイ dfbd-3xzG)
垢版 |
2021/10/16(土) 21:29:48.25ID:JA1IOSdA0
テキストボックスとボタンのみのフォーム内でのフォーカスを制御したいです。

@エンタキーで次のテキストボックス。
Aバックスペースキーでひとつ前のテキストボックス。
Bマウスでのテキストボックスの移動禁止。

以上の事を、実装したいんですけどテキストボックスの入力内容によってEnabledされたテキストボックスは進む時、戻る時は飛ばしたいです。

タブインデックスを順番通りなする→キーダウンイベント?を全てのテキストボックスに割り当てるで合ってます?Bは全くもってわかりません。
2021/10/16(土) 21:37:12.28ID:0GilHVUX0
>>432
古いシステムの挙動をそのまま再現しろ的な要求仕様なのかな…
(2)の[Backspace]で一つ前のテキストボックスへ移動って編集中の文字の修正はどうするの?カーソルと[Delete]使えってこと?
2021/10/16(土) 22:21:41.23ID:0CjYy/Ai0
質問です
入力された文字列と文字数を表示するプログラムで
Enterキーのみが入力されるまでループして入力要求をするようにしたいのですが
1〜4文字の入力はループするのですが5文字入力するとループが終わってしまいます
どうなおせばいいでしょうか?
よろしくお願いします
/*************************************/
#include <stdio.h>
#include <string.h>
int main(void){
char str[] = "Hello";
fgets(str,sizeof(str),stdin);
while (str[0] !='\n'){
if (str[0] != '\n'){
printf("文字列%s\n",str);
printf("文字数%d\n",strlen(str));
fgets(str,sizeof(str),stdin);
}else{
break;
}
}
}
/*************************************/
2021/10/16(土) 22:24:52.68ID:0CjYy/Ai0
>>434
C言語と板間違えました
2021/10/16(土) 22:26:11.89ID:o4JxPmaXa
1995年時点でも相当に時代錯誤なUIだねw
2021/10/16(土) 23:27:25.05ID:66NQtqDb0
>>434
ここで答えるのも違うと思うが、Visual C++上でやってると仮定して。

配列strは、4行目の「char str[]」の宣言で、"Hello"と5文字分確保されている。
下(4行目、10行目)のfgetsでは、sizeof(str)分取り込んでいる。つまり、5文字分だ。

4行目のfgets時に「12345」と入れてEnterを押すと、実際には「12345\n」と入力されたことになる。
この時、まず取り込まれるのは先頭から5文字分で、8行目のprintfでは「12345」と表示されるだろう。
しかし、stdinには「6文字目」の\nが残っているので、10行目のfgetsで、「配列strの先頭に」配されることになる。
その結果は?

そこまで分かれば、何をどう直せばよいかは分かると思う。
2021/10/16(土) 23:52:19.09ID:0CjYy/Ai0
>>434
解決しました
レス読ませて頂いてより理解ができました
ありがとうございます
2021/10/17(日) 00:30:13.86ID:jNrA6nf50
やっぱプログラムの基礎はCだよな。
いきなりjavascriptとか初めてこの先やってけるのか?と思う
2021/10/17(日) 00:47:45.83ID:BchMikrh0
それは余計なお世話だろ
まぁjsの書き方はcに慣れてると正直キモいなと思ったりするけど
2021/10/17(日) 00:48:47.60ID:QSG4N5gp0
>>432
3はmouseenterのときにactivecontrolを記録しておいてクリックイベントでそこに戻せばいいんじゃない?
スマホだからサンプルは無理
2021/10/17(日) 07:34:25.38ID:RvuXC4b/0
フォーカス外れたらテキストボックスからラベルに置き換えるのが楽だと思うよ
2021/10/17(日) 09:09:08.97ID:li83on160
>>439
それを C# のスレで言っちゃあおしめぇよ、ってなもんだ
444デフォルトの名無しさん (スッップ Sdbf-3xzG)
垢版 |
2021/10/18(月) 12:26:38.45ID:1NG1uNNLd
>>433
おっしゃる通りそのままま再現です。入ってる文字に関してはBox内全選択状態にしてdeleteですかね。
ありがとうございます。

>>441
なるほど、ありがとうございます。調べてみます。
445デフォルトの名無しさん (ワッチョイ 1f89-Avck)
垢版 |
2021/10/18(月) 13:49:38.05ID:UIeTv/hI0
ASP.net core 3.1 + Entity Frameworkってここで質問してもOK?
先週あたりから少しやり始めてるんだけど、「startup.csでApplicationDbContext(名前はいくつか表記ブレがあったが)をDIする設定をしておいて、各コントローラーではDIされたそれを使う」って流れにどうも違和感を感じる。
これってつまり、ApplicationDbContextにそのアプリで使う全てのテーブルをDbSetとしてあらかじめ書いておくって事?
それだと大規模アプリだと収拾がつかなくなりそうな気がする。
(1モデル毎とはいわないまでも)いくつかのDbSetを入れたDbContextに分割した上で、DIされたApplicationDbContextの接続情報等を使ってコントローラー内で生成した方がいいと思うんだが、上手く検索できない。
何かご存じの方がいらっしゃれば御教授を賜れば幸いである
2021/10/18(月) 15:53:17.35ID:+CxqcXuB0
>>445
そのアプリで使う全てのテーブル、というよりは、
接続先DBにある全てのテーブルをDbSetとしてあらかじめ書いておくイメージかと
必ずソースコードと実DBを1:1で対応させる

むしろ同一DBなのにテーブルごとに見るべきDbContextがまちまちになってるほうが収拾つかなくならない?
読み書きするテーブルごとで別々にDbConnection張ったりしないでしょ
2021/10/18(月) 19:01:16.44ID:UIeTv/hI0
>>446
お返事に感謝。
なるほど、もしかしてApplicationDbContext(勿論別の名前でもいいが)って、基本的にコーディングしない(どこかで自動生成する)ものなのでしょうかね?
だとすれば納得です。

で、あとはトランザクション制御が必要な処理とかあったらコントローラー側で個別にDbContext作った方が、かえって見通しが良くなるかもしれませんね
2021/10/18(月) 20:41:31.91ID:Lp0dxyHq0
C#でアプリ作りたいのですが何を学習すれば良いか分かりません
アプリ作成経験は皆無で入門書で文法やり終えた所です
アマゾンで検索すると以下のようなタイトルが出てきますがどれが自分がやろうとしてることなのかわからないの教えて欲しいです
0からフォームアプリを作りたいです

.NET 5
OpenCV4
Unity
Visual C# 2017
ASP.NET
C#によるWindowsシステムプログラミング
2021/10/18(月) 20:49:36.79ID:T8N4RMa6M
>>448
貴方には無理
2021/10/18(月) 20:51:17.11ID:YaFIw7sk0
計算途中の結果を取得して 一定時間ごとに
画面に画像を再描画したいのですが
どういう方法が無難でしょうか

文字を出力するだけならConsole.WriteLine()を挟むか
テキスト出力でできたのですが
画像を表示して、それを更新するにはOnPaint等を利用する
しかないのでしょうか それとももっと簡易な方法がありますか

思いついたやり方(動作未確認)
@OnPaint内で ある配列(途中結果)の内容を元に画像を描画
A一定時間ごとにタイマー等でOnPaintを強制的に呼び出して
 @の処理を再実行して描画を更新する

↑のやり方をした場合 メインの処理では計算が実行されていて
その途中結果をOnPaint内の処理が読みに行って描画が更新されるので
待ち合わせとかは特に考えなくてもいいんですよね...
2021/10/18(月) 20:53:28.22ID:dsss1YSx0
作って覚える Visual C# 2019 デスクトップアプリ入門
作って楽しむプログラミング Visual C# 2019超入門

とかアマのページ見たら
なんかよさそうだったよ
読んでないけど
サンプルコードも付いてそうじゃん
2021/10/18(月) 20:57:36.10ID:dsss1YSx0
>>450
表示したいタイミングで
Thread.Sleep(100);
とかやる
これでダメになったときは
きっと色々理解してると思う
2021/10/18(月) 20:59:40.31ID:dsss1YSx0
場所がループ内のときは
一定時間毎に挟まないと
動かなくなっちゃうので注意です
2021/10/18(月) 21:01:48.31ID:YaFIw7sk0
>>452
>>453
どうもです
そのやり方でちょっと考えてみます
2021/10/18(月) 21:09:44.84ID:5NQ4wG5P0
>>448
実際にアプリ作りもって話すすめていく本がいいと思うよ
456デフォルトの名無しさん (ワッチョイ fb01-Avck)
垢版 |
2021/10/18(月) 21:19:51.69ID:kGOStHwx0
NFTゲーム、NFTアート、ブロックチェーンゲームに今すぐ参入しなさい
これからこの市場は100倍になる
2年もしたら先行者利益が失われてブルーオーシャンからレッドオーシャンになるだろう
2021/10/18(月) 21:31:48.22ID:xe65shoD0
>>451
回答ありがとうございます
本の家で立ち読み出来たので読んできたのですが
理屈とか抜きでとりあえず出来て喜ぶ感じの本だったのでちょっと違う感じでした
(偉そうなこと言ってすいません)
骨組みも何もない所からフォームアプリを作れるようになりたいです
2021/10/18(月) 21:41:09.39ID:qqFOe+Kza
>>450
コントロールのクライアント領域の再描画はControl.Invalidate等を呼んで
無効化するのが基本。(等と書いたのは似たようなメソッドが複数あるから。
その辺の事情はDobonさんとか見て)

OnPaintはシステムからコールバックされるもので、基本的にはユーザーコードから
呼ぶものじゃない。

途中経過をどう表示に反映するかについては、タイマーで一定時間ごとに
Control.Invalidate呼ぶのが一番単純で分かりやすくないかね。

途中結果がプロパティで取得できるようになってればOnPaintでそれを読んで描画するだけだ
2021/10/18(月) 21:50:10.19ID:dsss1YSx0
>>457
え?win32apiを直接いじって画面作るとこからやりたいとか思ってる?
CreateWindowとかいう引数がぐっしょりあるわけわからんメソッドを自力でやりたいとかそんなん?

今の時代それは無駄よ
シリコンウェハー自分でスライスしないと気がすまないってぐらい無駄よ
2021/10/18(月) 21:56:11.26ID:YaFIw7sk0
>>458
どうもです
そのやり方でテスト版ですが
動作確認できました
2021/10/18(月) 22:29:52.28ID:Qmtv+2pm0
>>459
こういうのを1行1行解説されてる本が欲しいです
貼って作る本はコンソールの文法を勉強した意味があまり感じられなくてやる気が出なかったです

using System;
using System.Windows.Forms;

class Program
{
[STAThread]
static void Main()
{
Form form = new Form();
form.Text = "Hello";
Application.Run(form);
}
}
2021/10/18(月) 22:43:03.40ID:dsss1YSx0
>>461
これなんか見慣れないものある?
2021/10/18(月) 22:49:29.36ID:Qmtv+2pm0
>>462
アプリ作成経験ないので色々分からないのです。
[STAThread]
Application.Run(form);
とかコンソールの文法の本に出てこなかったので。
なのでこんな基礎的な部分から解説してる本が欲しいです。
464デフォルトの名無しさん (ワッチョイ ab5f-4HJo)
垢版 |
2021/10/18(月) 22:53:06.65ID:Qrw/nlNf0
VSでマウスのせたら説明出てこないか?
2021/10/18(月) 22:55:27.57ID:Yxn1i5HN0
>>463
https://docs.microsoft.com/ja-jp/dotnet/csharp/
2021/10/18(月) 23:08:56.14ID:dsss1YSx0
>>463
ググった方が早いわ
2021/10/19(火) 00:40:29.16ID:K4KViqsJ0
自分もwinformから入ったけどとっかかりに原理原則を細かく理解するのは逆に遠回りでは
ツールボックス見て面白そうなものをデザイナーに貼ってポチポチしてるだけでなんとなく雰囲気はわかってくる
深入りしたきゃ気になるメソッドのマウスオーバー眺めたりF12で潜っていけばいい
2021/10/19(火) 00:50:17.91ID:cvaIv+Ct0
ILSpy使ってフレームワークのソースコード覗くといいよ
2021/10/19(火) 00:55:58.27ID:E5433Asi0
昔と違うからなぁ
絶対遠回りだよ
ある程度で割り切らないと
時間ばっかり浪費して
何も作れないで終わっちゃうぞ
470デフォルトの名無しさん (ワッチョイ eb8e-ToKj)
垢版 |
2021/10/19(火) 01:04:15.25ID:+UiQgTle0
>>463
ステイサムの兄貴の映画を見ろ
2021/10/19(火) 01:39:15.16ID:HbAZxKGu0
ジェイソン・ステイサムに兄貴がいるのか?
あー?どうなんだ、質問に答えるんだ!
アドレナリン出し続けなきゃ死んじまう体にしたろうか!
2021/10/19(火) 02:48:26.50ID:JXiaWVHVa
>>470
彼の最高傑作はこれだと思う
https://youtu.be/EnIXkj6iWpY
2021/10/19(火) 12:16:27.94ID:ep6zny9s0
>>463
>>466に同意だわ
とりあえずサンプルが動く環境を作ったら、分からないところは一つ一つググる
本買っても自分の期待することが書いてるとは限らないし、そもそも最近は情報の劣化も早いからね
フレームワークも .net5 が最新になってるし、それ以前の書き方とは少し異なる部分もあるはず

フォームアプリ作りたいなら練習に何か目標決めて、調べながら小さいアプリ作ってみると良いと思うよ
2021/10/19(火) 14:05:03.95ID:z3sZEuHar
手を動かしながら都度ググって動くものを作るのはいいけどその場合こう書くと動くがなんでそうなるのかわからんってなりがちではある
2021/10/19(火) 14:21:23.48ID:xgxKmG1X0
ググりながら動くものを作るのは別に普通のことでは?
2021/10/19(火) 15:20:20.12ID:HbAZxKGu0
>>472
ワロタ
ジェイソン・ステイサムって結構CM出てんのか、知らんかったわ
2021/10/19(火) 16:24:38.29ID:jg0lHBF80
>>461
自分も初心者ですが、デスクトップアプリいろいろ作れるようになりました

ちなみに、これ>>451の上の本読みました
もちろんこれだけですべてが理解できるわけじゃないけど、フォームアプリのとっかかりとして非常に参考になりました
自分もあなたと同じで、全部ちゃんと知らないと気が済まないタイプですが
それを追求するには、プログラミングの世界は広大すぎます
C#だけでも余りに広い
まず、勉強の成果を形する、これがやれないと楽しめなくて、その後には挫折が待ってます
そういう意味で、不完全であってもフォームアプリの基礎をかいつまんで学んでおくのは大事

>コンソールの文法を勉強した意味があまり感じられなくてやる気が出なかったです

これ、全く違うと思います
自分は「独習C#」をベースに勉強しました
コンソールの文法ですね
フォームアプリを作る上で、なくてはならない文法ばかりです
作って覚える系の本が教えてくれるのは、骨組みです。
中身を埋めるのに使うのは、コンソールで学んだコードです+入門本にはなかったクラスの使い方はググる
やってきたことは確実に役に立つはず!
2021/10/19(火) 18:10:03.16ID:7B6YU16K0
プログラミングの勉強を本でする奴とは友達になれない
2021/10/19(火) 18:28:19.46ID:F0Ya2cseD
電子書籍やテキストデータならいいの?
2021/10/19(火) 18:33:24.45ID:Gx8Lsz0e0
>>478
俺は本読まないやつとは仕事したくない
2021/10/19(火) 18:42:24.36ID:UTtbFHEb0
>>480とは友達になれそうだ
2021/10/19(火) 18:56:17.95ID:DPpxVMyL0
本で得られる部分の知識は本で学べばいい
ネットだけだとつまみ食い的になりがちだから、特に最初は本である程度網羅的にやるのがいいと思うわ
2021/10/19(火) 19:00:26.38ID:SiROobEMM
別に好き好きじゃね
賞味期限切れの名著を後生大事にしてる奴はそっと避けたくなるけど
484デフォルトの名無しさん (ラクッペペ MM7f-xEoX)
垢版 |
2021/10/19(火) 19:17:49.43ID:NUYGeUrwM
ベーマガは許される?
2021/10/19(火) 19:21:00.95ID:F0Ya2cseD
初学者は本で体系的に学ぶのが近道だと思うけどね
紙か電書かの媒体は問わないけど、順番に読み進められるのは大事
リファレンスはその次
2021/10/19(火) 19:37:08.62ID:zXEaVMtY0
本来概念的に同じものの筈なのにクラスが複数に別れてしまってるとき、それぞれに共通する処理ってどこにどう実装すれば良いんだろ?
たまたま同じ処理とかじゃなくて、同じ処理であるべきのもののケース
同じ処理をそれぞれに書く? 外から注入?

今からクラスまとめるのは無理です
487デフォルトの名無しさん (ラクッペペ MM7f-xEoX)
垢版 |
2021/10/19(火) 19:40:30.47ID:NUYGeUrwM
インターフェースがあるじゃない
2021/10/19(火) 19:54:15.72ID:zXEaVMtY0
残念ながらインターフェースのデフォルト実装はつかえないバージョンです
2021/10/19(火) 20:00:39.47ID:7B6YU16K0
継承も使えないのか?
2021/10/19(火) 20:19:51.33ID:2lJX9loQ0
>>483
どっちもどっちだな。
ネットこそ賞味期限切れの情報がゴロゴロしているし。
2021/10/19(火) 20:41:13.43ID:zXEaVMtY0
>>489
基底クラスに共通処理書いて継承するということですか?
書き方はわかりますけど、そのやり方がアンチパターンなのかどうなのかの区別ができないというか、
よろしくないと思って別の実現方法考えてました
2021/10/19(火) 21:26:18.26ID:4FmBzDSC0
アンチパターンを避けたいとかいうのなら、クラスをまとめるのは無理とか言ってる場合じゃ無いような気もするけど
なんか事情があるんかしらんけど
493デフォルトの名無しさん (ワッチョイ 6b01-tt7j)
垢版 |
2021/10/19(火) 22:13:01.74ID:NdtIV47d0
別の静的なクラスに共通処理を書いて、その別れてしまったクラスからそれぞれ呼べばいいんじゃないの?
みんな実際のコード見てないんだしなんとも言えんでしょ
2021/10/20(水) 00:28:12.22ID:rYK+1ZNA0
protected voidとかprotected staticで共通処理書くのってアンチパターンなの?
2021/10/20(水) 00:46:59.58ID:Vnkg0vX60
>>492
事情というか誰かが作ったそのクラス設計で開発が進んでしまってて今更どうしようもない感じ
そこに引っ張られて自分の所がぐちゃるのを極力さけたい
基底クラスに詳細実装書いても良いケースがあるのかどうか、それはどんな時なのかがわからんです

>>493
それくらいしかないのかなあ
2021/10/20(水) 00:53:50.95ID:/D1ic6a/M
>>494
そもそも継承を積極的に使うこと自体がアンチパターンなので
2021/10/20(水) 00:57:30.59ID:i4n94w0X0
まーたアンチパターンクリエイターか
2021/10/20(水) 01:01:46.49ID:y6HHRm9e0
漏れなくobjectを継承してるC#はアンチプログラミング
2021/10/20(水) 01:10:41.57ID:GI8NfUrfa
>>495
>>486にある「今からクラスまとめるのは無理」とはどういう意味?
継承が適用できるなら素直に継承使って書き直すのが
一番だと思うけど、それは許されてないってこと?

何ができて何ができないのか、どこまでの変更が許されるのか。
ちょっと全体的に話が漠然とし過ぎて雲を掴むような話だねw
500デフォルトの名無しさん (アウアウウー Sacf-mxW8)
垢版 |
2021/10/20(水) 09:06:31.90ID:OEiI06HQa
>>486
abstract継承
2021/10/20(水) 14:10:58.20ID:rRdFNS4p0
>>495
基底クラスで派生先の処理を書くのはおかしい
基底クラスとして適切な処理を書くのは問題ない
という普通のことが聞きたいの?
2021/10/20(水) 16:17:22.89ID:saxl1FyI0
AとBで共通の処理があるから、この部分をベースクラスにしようって順は大抵クソだな。
とくにAのソース全く触れない場合は。

Interfaceだけにしとくのが検討要件で、その価値がないなら、多分何も構造変えないが結局ベスト。
2021/10/20(水) 16:59:39.86ID:lNlmn0wH0
概念的に同じものだからといって必ずしも同じクラスにすべきとは限らない
同じクラスにするか複数クラスにするか設計意図次第

どうするのがいいかは共通な処理と共通でない処理の関係性やそれぞれの凝集度によるので
>>486に書いてるような内容だけで判断するものじゃない
2021/10/20(水) 17:34:12.98ID:hlq3qMEe0
>>502
当然誰もが真っ先に思い浮かぶのはインターフェースだがそれは後出しで真っ先に却下されてる
2021/10/20(水) 17:56:06.15ID:jvdlGdZPa
>>504
>>486を素直に読めばむしろそれはないと思うよw

これは言い掛かりかもしれないが、
なんか盲目的に実装の継承を否定してインターフェイス使えって人散見するけど、
正直中学生じみてると思うんだよねw
2021/10/20(水) 20:10:47.25ID:jV19oboX0
状況が良く分からないな
誰かが作ったクソなクラスAがあって、自分はそれを使いたくないから別の同じようなクラスBを作って、でも共通的な部分は共通処理にまとめたいって話なんかね。
その状況なら俺ならクラスAをラップするようなクラスを作って、必要な共通処理だけクラスAに移譲するようにするかな。
2021/10/20(水) 20:12:33.87ID:jV19oboX0
まぁ何にせよアンチパターンがどうとか考えるより、メンテしやすさ、シンプルさ、使いやすさなど実利的なところを重視する方が俺は好きだな
2021/10/20(水) 20:20:06.85ID:QSmzlWUQD
>>507
その辺を重視した結果がアンチパターンなんじゃない?
509デフォルトの名無しさん (ワッチョイ ab5f-4HJo)
垢版 |
2021/10/21(木) 01:47:47.06ID:Li4xz+CY0
初めに考えたのが基底クラスだった
全く同じ処理であるべきものなのにインターフェースにしてブレを許容する作りはおかしい
2021/10/21(木) 05:45:57.50ID:2FnoPHWW0
いまからクラスを纒めるのは無理ですって言ってんだろカスども
2021/10/21(木) 16:43:18.94ID:H2PdImxP0
間違ったものに何を被せても出来上がるものは間違ったものにしかならん
下手に猿知恵使って問題を見えにくくするくらいなら誰の目からも間違っていることがわかるようにしとけ
2021/10/22(金) 07:34:14.76ID:Fpj8J7/FM
もっと平たく「金箔貼っても糞は糞」
2021/10/22(金) 07:38:49.54ID:4ZGu36d/M
金箔は取れるじゃん
2021/10/22(金) 19:07:14.68ID:aB4sVObsa
スパゲッティでも動くものは動くし、
誰かが頑張ってメンテしてくれるんだぜ
2021/10/22(金) 20:59:58.33ID:qh97V0be0
バージョン管理についてお尋ねします
個人で素人開発して2年かけてそれなりにプロジェクトもでかくなっているのですが
いまさらながらにバージョン管理した方がよいのかなと調べています
gitやSubversionあたりかなと思っていますが
個人レベルで既に大きくなったプロジェクトを今からでも
管理するように勉強した方が良いもんでしょうか
いまは、単純に外部ストレージにまるごとプロジェクトのフォルダをバックアップしてます
516デフォルトの名無しさん (ワッチョイ 3901-z4aL)
垢版 |
2021/10/22(金) 21:02:08.96ID:FSg5jOmH0
あたりまえ
gitを勉強しよう 今更Subverusionはない
517デフォルトの名無しさん (ワッチョイ 3901-z4aL)
垢版 |
2021/10/22(金) 21:02:52.94ID:FSg5jOmH0
なんかスペルミスってるけど気にせんで
2021/10/22(金) 21:39:05.24ID:rBA4XVZ20
>>515
VSにも統合されてるgitだな
他の選択肢は考えなくて良いかと
2021/10/22(金) 22:01:38.31ID:8L7RGAQS0
YouTube で有名な、雑食系エンジニア・KENTA のサロンの、
Ruby on Rails 初心者用コースでは、

Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, AWS, CircleCI、データベース などは必須

転職で、必ず聞かれるのが、git のプルリク(pull request)のやり方。
ウェブ開発で、gitを知らない香具師はいない

gitできないと転職できない
2021/10/22(金) 22:18:31.16ID:EVzz2nOud
ruby基地外がそう言うならgitやめとこう
2021/10/23(土) 03:17:48.58ID:UUVz12Xz0
gitとgithubでプライベートリポジトリに入れておけばいいやん。
2021/10/23(土) 09:50:31.99ID:ypDenluu0
githubになんて挙げたらコード補完の学習材料に著作権ガン無視で使われるんじゃなかったか?
あの問題解決したの?
2021/10/23(土) 10:18:52.09ID:DsNdyrVS0
機械学習のモデルに使うぶんには著作権はフェアユースの範囲で問題ないってスタンス
0.1%ほどの確率で出力される学習データそのまんまのコードのライセンスに関しては明確な回答を避けているように見える
やはり稀だが個人データも出力されてしまうことがあって, メールアドレスだけはフィルタされるようにしましたって下りは笑うところだと思う
2021/10/23(土) 10:19:37.89ID:DsNdyrVS0
https://copilot.github.com/#faq-does-github-copilot-ever-output-personal-data
2021/10/23(土) 11:19:51.62ID:K+AMhToD0
Azure Repos、かつてVisualStudio Onlineと呼ばれた細々続いているサービスが有ってだな
2021/10/23(土) 15:04:14.99ID:11oj10Sw0
続いてるだと?
2021/10/23(土) 15:29:18.95ID:Mv77fa34M
Azure Devops Server ダウンロード
https://docs.microsoft.com/ja-jp/azure/devops/server/download/azuredevopsserver?view=azure-devops

Azure Repos
https://docs.microsoft.com/ja-jp/azure/devops/repos/get-started/what-is-repos?view=azure-devops
2021/10/23(土) 16:22:55.79ID:9fkxH4mSr
個人ならSVNの方をお勧めするけどなあ
プロジェクトみんなひっくるめて開発のルートディレクトリごとぶちこんどけばいいんだもん、楽
2021/10/23(土) 16:23:40.26ID:9fkxH4mSr
あとWindowsだとTortoiseSVNが神すぎる
2021/10/23(土) 16:25:37.65ID:iy20i4FQ0
TortoiseGitじゃあかんのか
2021/10/23(土) 16:37:35.29ID:UIvlvfjP0
個人ならサーバーすらいらないgitだと思うがなぁ。
2021/10/23(土) 16:40:32.91ID:+3pmpih80
>>528
別にgitでも個人ならその運用でもいいし
TortoiseGitあるし
今後チーム開発やることになったら九分九厘git使うことになるんだし
SVNのメリットはないと思う
2021/10/23(土) 17:40:37.86ID:skaucHgA0
今からSVN学ぶメリットが何一つ思い浮かばないな
2021/10/23(土) 18:02:46.55ID:h3b3hki/M
CVSならまあドカタ現場ならわりとあるけど、SVNは中途半端だから滅多に出くわさないね
やる価値なし
2021/10/23(土) 18:04:42.85ID:TfRc0xApD
gitとSVCは宗教
今はgitが多数派
2021/10/23(土) 18:05:37.88ID:V/eTCSzf0
みなさんアドバイスありがとうございます
gitが基本のようですが、それでもいろいろな見方もあるようなので決めかねてます
ちなみに
・本業と別に片手間でWindowsFormによる開発、ただし自分が作ったものを
業務でかなり使用されるようになっている
・完全に個人開発で、他の人とチームで開発することはまずない、転職することもない
・他の業務が多いので、学習コストは必要最低限にしたい(無論必要なら寝る時間削る)
・現在作ってるプロジェクトにすんなり導入できるか(←かなり重要)
・個人PCでやっているので、バックアップはしているけれどひとたびデータが飛べば
それまでの開発が継続できなくなるので、なるべくメンテナンス性が容易な手法がいい
・MacにParalles入れて仮想のWindows上でVS2019にて開発、サードパーティ製のモジュールも使用
現在はParallelsのイメージをまるごとバックアップして開発環境ごと保存してます
・新しい画面や機能を入れる場合は、CSファイルをコピーしてプロジェクトから外してバックアップ代わりに
(トラブったら新しい方を消して元のCSファイルをプロジェクトに戻す)ってことしてます

参考サイト見てても、チーム内の新人が下手打ったなどの例ばかりで
個人でやるメリットと導入や管理の手間のバランスがわからないところです
覚えてしまえばなんてことないのだろうとは思いますが・・・
2021/10/23(土) 18:17:21.89ID:skaucHgA0
>>536
vs2019使ってんならvs標準機能のgit使っときゃいいんだよ
2021/10/23(土) 19:05:37.44ID:kf/JMh+N0
絶対SVNのが楽
2021/10/23(土) 19:25:35.84ID:3AGCAcKuM
>>531
SVNもサーバーレスで使えるよ
外部参照等の一部の機能が使えなくなるけど
2021/10/23(土) 19:36:17.90ID:5wR1ayZPd
svnは過去の遺物
2021/10/23(土) 19:54:03.80ID:2TfCQV280
時代はVSS
2021/10/23(土) 19:58:27.98ID:OMf01maGd
Visual Studio使ってて導入に手間をかけたくないと言ってるんだからVisual Studioに標準で組み込まれているgit一択でしょ
2021/10/23(土) 20:32:24.76ID:11oj10Sw0
>>538
ねーよ
2021/10/23(土) 20:43:00.80ID:V/eTCSzf0
VS標準のgit、調べて使ってみます
みなさんアドバイス頂きありがとうございました
2021/10/23(土) 21:32:02.01ID:XQgx1Jtx0
>>541
Visual Source Shredderは時代の最先端を行っていたからな
2021/10/23(土) 21:33:13.97ID:kf/JMh+N0
githubじゃないからプルリクないからね
2021/10/23(土) 21:40:39.66ID:95J4TOlU0
>>532
TortoiseGitは違うんだなあ
なんで同じような実装にならんのか知らんけど
2021/10/23(土) 22:02:40.62ID:vvH281kC0
俺はgitkrakenとbitbucket使ってるな
2021/10/23(土) 22:08:57.77ID:AfNPPBvTM
今のGithubはMSに買収されてプライベートリポジトリが無料無制限となり、VisualStudioとも強力に統合されている
Bitbucketはもう存在価値ないよ
2021/10/23(土) 22:14:27.13ID:KWoyfano0
>>549
> 今のGithubはMSに買収されてプライベートリポジトリが無料無制限となり

うひゃー、そうだったのか
VS使ってて「こんなにGithubとMSがツーカーでいいのか、おい?」って思ってたところだ
2021/10/24(日) 00:34:47.66ID:wDHU0w6C0
vscodeとVSで微妙に違うのでたまに混乱する
自分が使ってるVS側が古いだけか
2021/10/24(日) 00:35:11.93ID:yMSDmryK0
>>549
VisualStudio Onlineは最初から5人まで無料で容量無制限だったから使い続けているけど、Githubも同じ様になってるんだな
2021/10/24(日) 02:55:56.36ID:TafVW45/0
>>552
同じじゃないよ、人数制限なんかない
554デフォルトの名無しさん (ワッチョイ 2973-RNtY)
垢版 |
2021/10/24(日) 03:07:07.36ID:RTPiU58z0
githubでプライベートリポジトリがいいっての。

vs使ってるんだし、将来一部をazureにするにせよ、
そのままデスクトップformだけにせよ、
あるいは.net6などに移行するにせよ。
vsだけでなく、vscodeも併用するようになるにせよ、
何も変えず現状維持でも、
可能性高い将来の環境追加を考慮しても
マイクロソフトのgithubが一番だっての。
2021/10/24(日) 03:12:32.82ID:gHdzMXrt0
タダでMicrosoftにソース提供するようなもんだな
2021/10/24(日) 04:29:04.25ID:Mrf21O+v0
vs使ってないな rider avaloniaやってるわ
2021/10/24(日) 05:41:48.22ID:1SVJ9Wvp0
>>536の会社のポリシーがわからんからなんとも言えんが普通の会社だと社内開発のコードをgithubに上げるのは色々まずい気がする
2021/10/24(日) 07:39:32.01ID:rcC2nhnQ0
>>557
素人コードで手間を省くのにコード内に書いていることも多いので
とてもクラウド上にはあげられないです
ローカルでgitだけ(githubは使わない)使うという理解ですが
あってますかね・・・
勉強はじめましたが、ローカルだけに絞るとなかなか記事が少ないですね
githubをプライベートにってのも、設定ミスで実は見えてましたなんてことが
ありそうでちと怖いです、気づいて指摘してくれる人も周りにいないので

でも企業とか外部に情報出さないのが鉄則のように思うのですが
githubが多用されていることが素人には不思議です
有料にしてプライベートが基本なんですかね
2021/10/24(日) 07:59:32.44ID:4IdS0kipM
さすがに現実を知らなすぎでは
某誰でも名前知ってる日本の大企業の社内システムのソースは全部Githubのプライベートリポジトリにある
Office365とGSuiteも契約して使ってるから、ソースに限らずメールや資料は全部MSとGoogleに預けていることになる
社内システムや顧客向けシステムの殆どはAWSとGCPで運用している
こんなの全然珍しい話じゃないよ
2021/10/24(日) 08:37:25.88ID:RTPiU58z0
設定ミスで実は見えてましたーとかないから...
プライベートリポジトリはpritateとマークが付く。

それでも不安ならreadme.mdとか1つだけアップして、
githubからログアウトして
該当のリポジトリをURLで見ようとすればいいだけ。
見れないことが確認できれば「該当のリポジトリはちゃんとプライベートになってる」から使っていけばいいだけなんだから。
2021/10/24(日) 08:38:50.48ID:RTPiU58z0
あと上に何回も書かれてるがプライベートリポジトリは無料ね。
2021/10/24(日) 09:22:52.30ID:1SVJ9Wvp0
>>558
> でも企業とか外部に情報出さないのが鉄則のように思うのですが
たいていの会社の多くのプロジェクトはそうだと思う
モノによっては特定の部屋から出しちゃダメとかすらあるしね
ただ逆に大学と共同研究開発とかでgithub使うとかもあったりする

> githubが多用されていることが素人には不思議です
多用されてるかどうか知らんけど使ってる奴の(ネット上の)声がでかいのは確かだと思う
2021/10/24(日) 09:29:28.02ID:1SVJ9Wvp0
>>560
> プライベートリポジトリはpritateとマークが付く。
こんな奴が設定ミスで~ とか言っても説得力 "0" やなw
2021/10/24(日) 09:56:46.55ID:xkEpPvQL0
弊社クソデカJTCだけど、ソース管理サーバーはセルフホストしてるぞ。
社内システムも各種そういうクラウドもあるけど、国内でも仮想サーバー立ててそっち使ったりもしてる。
565デフォルトの名無しさん (ワッチョイ 62eb-SH1g)
垢版 |
2021/10/24(日) 10:37:09.53ID:sJguVuMQ0
Azure導入してるところはAzureRepos使ってるんじゃないか
2021/10/24(日) 11:16:43.06ID:cSH7DcWrM
クラウド利用ならAzure DevOps Service
オンプレミスならAzure Devops Server
Expressは同時接続5ユーザまでだけど個人利用のライセンスは無償
WindowsServerでなくてもクライアントOSにもインストールできる
個人利用ならVisualStudioCommunity + SQL ServerExpress + DevOpsServerExpressを1台の開発マシンにインストールすればすべて無料で利用可能
2021/10/24(日) 12:23:11.77ID:S8Kn9Fh4d
仕事で普通にgithubのプライベートリポジトリ使ってるがな
一カ所だけで開発してるわけじゃないし
2021/10/24(日) 12:30:18.47ID:ZGWhrjvVM
Azure DevOpsはGithubに統合していく方針でしょ
Github Actionsが名実共にPipelinesの後継だしな
2021/10/24(日) 13:15:47.96ID:FpGB46a40
ギフハブ以外に選択肢なんてほぼ無い時代に何言い争ってんねん
強いてギフハブ以外にあるとしたらBANされづらいギッラボがハッキングツール置き場として選択肢上がってくるくらいだわな
2021/10/24(日) 13:30:02.12ID:XTgpqttmM
GitHubではオンプレミスのDevOps Serverの代替にはならない
クラウドのDevOps Servicesの位置付けは微妙なところだね
2021/10/24(日) 13:44:33.37ID:aK0/ZU7vd
>>570
github enterprise使えばオンプレでgithub actions使えるのでは?
2021/10/24(日) 14:04:22.98ID:kH6+iFBO0
>>558
今のVS(Ver.16.11)は既存のソリューションのローカルgitリポジトリを作るのは簡単だよ
gitメニューのgitリポジトリの作成でローカルのみを選んで作成するだけ
それを実行したらソリューションフォルダの中に.gitフォルダが作成される
2021/10/24(日) 14:06:20.69ID:oKiLV6KP0
なおファイル名変更により履歴が吹っ飛ぶ可能性あり
2021/10/24(日) 15:15:45.24ID:yMSDmryK0
.gitignoreをちゃんと設定しないと後々面倒なことになるね
ググってコピペで十分だが
2021/10/24(日) 18:09:54.87ID:TafVW45/0
>>570
GHES知らないのかよ
2021/10/24(日) 20:08:37.56ID:kH6+iFBO0
>>574
VSでリポジトリを作成すればVS向けの.gitignoreも自動生成されるよ
2021/10/25(月) 03:37:56.42ID:B1mDILiv0
プログラムソースはgit、リソースはsvn管理が一般的だろ
githubとか使わないでも、ローカルのHDDにリモートリポジトリ作れるよ
gitクライアントはSourceTreeが使いやすくて好き
2021/10/25(月) 04:39:51.46ID:OmnyYW+Y0
source treeはいいね
単体リポジトリだけならvsのgit機能で事足りるんだけど
vsで複数リポジトリを統合管理できたらsource treeからまるごと乗り換えられるんだよなぁ
2021/10/25(月) 08:01:40.36ID:VUzDuzVId
>>577
リソースとは?
2021/10/25(月) 08:49:47.90ID:xKyFV7r10
ドキュメントとソースを別管理にするとどのドキュメントのバージョンがどのソースのバージョンに当たるのか普通にわかんねーぞ
2021/10/25(月) 08:51:01.02ID:xKyFV7r10
そういう管理してるとこあったけどバカが知ったかで管理者気取ってるだけで問い詰めたら全く理由らしい理由なかった
2021/10/25(月) 08:58:14.84ID:8GMjQ8lSD
git教とsvn教の両方から叩かれるソリューション
2021/10/25(月) 09:09:13.72ID:erjmSvlVd
趣味でC#書いてるだけだからか、Githubに触れる理由が見当たらない。
2021/10/25(月) 10:07:16.31ID:wUJQzT+GM
趣味でもOSSのライブラリのソース見たりすることはあるだろ?
それすらしないならさすがに無価値なんで存在を無視して差し支えない
585デフォルトの名無しさん (ワッチョイ 895f-/PVD)
垢版 |
2021/10/25(月) 10:27:38.27ID:ZD0F2bR/0
素人が価値のないコードを必死に守ろうとするのは滑稽だな
そんなもん全公開でいい
2021/10/25(月) 10:32:51.24ID:xKyFV7r10
そして流出する個人情報
2021/10/25(月) 10:33:22.77ID:xKyFV7r10
と顧客データ
2021/10/25(月) 11:59:38.34ID:nDrpBVJJ0
素人だろうとデータを軽んじてる時点で社会人として失格だわな
そういう奴が個人情報をお漏らしする
2021/10/25(月) 12:16:16.74ID:SCXNLEsY0
なんでソースコードの中に個人情報が入るのかがまず分からん
2021/10/25(月) 12:41:29.79ID:YTvXZGZn0
個人情報はともかく、APIのkeyをベタ書きして…というしょうもないミスがまれによくあったりするからなぁ
2021/10/25(月) 12:46:30.61ID:gLiJ8R3D0
>>589
メルカリに聞いて
2021/10/25(月) 13:08:09.93ID:xKyFV7r10
>>590
多くのサンプルがそうだからな
じゃあどこへ置くんだよっていうと結構難しかったりする
2021/10/25(月) 13:33:24.90ID:B1mDILiv0
>>579
リソースはpngとかのいわゆるバイナリファイルかな

>>580 >>581
gitはバイナリファイルの差分管理ができないからsvnで管理する
そりゃgitで全部管理できたら楽だがプロジェクトが大きくなったらトラブるよ
個人開発レベルのサイズならgitで済むかもだが
svnとgitのバージョンのずれは運用で何とかするな(日時とか見てそれぞれ戻せば別に問題ない)
どうしても一緒に扱いたいなら別のバージョン管理システム使うかだね
(perforceとか)
2021/10/25(月) 14:31:51.64ID:/6wlUeg20
大きすぎるものは分割しよう
2021/10/25(月) 14:41:27.32ID:6t6sXtph0
バイナリーの差分なんて必要ないだろ
2021/10/25(月) 15:51:29.41ID:TRf/J2SsM
>>593
> svnとgitのバージョンのずれは運用で何とかするな(日時とか見てそれぞれ戻せば別に問題ない)
個人的にはsvnの方が慣れてるのでいまだにsvn使ってる俺ですらそれには賛成できんわ
2021/10/25(月) 16:46:51.41ID:CL1mjvO/0
>>593
svnなら差分管理できるわけ?
2021/10/25(月) 17:04:23.24ID:6t6sXtph0
でかいバイナリー扱うならgit LFS使えばいいんだよ
2021/10/25(月) 18:13:57.18ID:B1mDILiv0
git LFS は俺が選定した当時は問題ありそうだったから使わなかったね
今は良く分からんけど使えるなら使えばいいんでない?
使ってないのにググった結果で適当言ってるだけなら怖いけど
2021/10/25(月) 20:26:36.15ID:5+qPFldj0
知りもしないのに知ったかするのが怖いってのは自己紹介かな
2021/10/25(月) 21:31:24.47ID:3IW01+t90
>そりゃgitで全部管理できたら楽だがプロジェクトが大きくなったらトラブるよ

とりあえずこれ、gitになにか問題があってトラブるって言ってる?どんな問題?
2021/10/25(月) 21:42:12.82ID:JVD00Zwu0
まぁ、100Mのものが無いだろうと思ってたら、
100M超えてるのが2つあって手戻しとかはあるな。
個人でプライベートだと、コンパイル結果や中間ファイル消したりもしないし。

拡張子でざっくり消せればいいのだが、そうもいかず名指しでignore指定。
ほほ間違いなく後手対応になる。
603デフォルトの名無しさん (ワッチョイ 3901-z4aL)
垢版 |
2021/10/25(月) 22:14:20.77ID:3O35Ls500
それはgitを使いこなせてないだけでは
2021/10/25(月) 22:22:36.05ID:6t6sXtph0
Visual Studioが最初に生成する.gitignore使えば生成ファイルが除外されてるしな
2021/10/25(月) 22:23:37.30ID:xKyFV7r10
>>593
ドキュメントとソースのバージョンが一致しなくなっちゃうより問題あることって起きる?
2021/10/26(火) 07:36:22.56ID:7iLVX7OB0
https://sites.google.com/site/nantonaku999/home/fairu-cang-ku2/fairu-cang-ku-2

このようなニコニコ動画弾幕ツールを作るにはC#を学習すれば良いのでしょうか?
参考になりそうな書籍などありましたら教えて欲しいです
プログラミング自体入門者です。
2021/10/26(火) 09:53:38.01ID:nH/QWLAm0
gitとsvnを併用運用するのって良くある環境だと思ってたけどこんだけ突っ込み入るならそうでもないのかね
gitは大きなバイナリの扱いが苦手ってのはググれば分かるんだから、どれだけ問題あるかとかは自分で判断してくれ
単にリポジトリが大きくなるとかクローンに時間がかかるとか重すぎてタイムアウトするとかそういうのだよ
もちろんプロジェクトによっては問題ないだろうから自己判断だね
2021/10/26(火) 11:00:08.19ID:4Npi0ceqM
>>607
俺の職場も併用だし他社でも似た話を聞くよ
そんな気にすることでもない
2021/10/26(火) 11:22:27.27ID:M4zViq7X0
>>606
だいたいどの言語でもできると思うけど、使いたいサービスや前例がある言語を選べると良いとおもう。
それがわかんなかったら、好きな言語を学びながら作りたいものの完成を目指すといいよ。
「この機能は弾幕のここに使えるな…」みたいな感じで勉強していくとモチベも続くんじゃないかな
書籍はいらないよ、サイトで学習するだけで十分。
c#ならここでいい
https://ufcpp.net/
2021/10/26(火) 12:20:24.90ID:oGvcWZ0b0
ゲーム系、特にコンシューマ機系はほぼ確実に混じってると思うぞ。
2021/10/26(火) 12:45:54.68ID:QBPvv+qx0
>>606
それWinformsアプリケーションだよ、これから新しく学ぶには良い題材と思えないな
ちなみに需要があるなら、とっくに新しいソフトが作られていて、利用者もそっちへ移行してるものじゃないかな
古いものを仕方なく使う場合、それ相応の理由がある。で、それを確認できないと何とも言えないね
2021/10/26(火) 13:14:47.13ID:Lw2w7Q/c0
ニコ動は弾幕システムも含めて他所のサイトから丸パクリだからな
元の開発者知ってるだけに今見てもムカつくだけだわ
初期の開発はC#だったよ
2021/10/26(火) 13:26:21.73ID:oGvcWZ0b0
最初はWinformの4.8 frameworkの方が話しが単純だから学習に向いてるよ。

WPF使うにしても最初は前部ビヘイビアで書く方が理解も早い。
一人で5年と経験もない人がWVVMとかやっても
マイナスにしか働かないし。
2021/10/26(火) 18:25:03.57ID:Cq2VKdsO0
>>609
ありがとうございます
C#の基礎的なコンソールの文法は覚えれたと思うのですが
どうやって弾幕アプリを作っていけばいいのか検討もつきません
アプリの本を読んでれば作れるようになるんでしょうか?
2021/10/26(火) 18:30:44.74ID:doQK1NHm0
>>613
前部ビヘイビアがさっぱりわからんが、コードビハインドのことかな?
2021/10/26(火) 18:39:05.43ID:oe4Dvohb0
>>613
色々出鱈目だのう
4.8 framework→.NET Framework 4.8
WVVM→MVVM
前部ビヘイビア→全部コードビハインド
2021/10/26(火) 18:47:28.13ID:jDc7PZeY0
>>616
前部ビヘイビアよく分かったなw
2021/10/26(火) 19:42:14.09ID:QBPvv+qx0
添付ビヘイビア「呼んだ?えっ違うの?」
2021/10/26(火) 19:57:08.91ID:b4h9wXoa0
臀部ビヘイビア「やっと出番か」
2021/10/26(火) 21:09:04.64ID:Ui9ZIWjk0
玄武ビヘイビア「・・・お呼びでない?」
2021/10/26(火) 21:17:56.76ID:doQK1NHm0
何が衝撃的かと言えば、キャリア5年を素人と扱いしているということは
彼のキャリアは推定10年以上ってことだわ
2021/10/26(火) 23:31:49.78ID:QBPvv+qx0
設計3年、コーディング8年、デバッグ一生
2021/10/27(水) 00:21:15.63ID:VZtiuUQ4M
c#でディスクパーティションを削除したり作成したり自動化したプログラム作りたいんです。
それ系のサンプルコードを検索しても出てこないんですがc#では無理でしょうか?
2021/10/27(水) 00:22:54.43ID:dedb9OIKM
diskpartを呼べばいいだけ
2021/10/27(水) 00:48:40.58ID:ZEhE+cUi0
>>616はエスパーかな?
2021/10/27(水) 03:00:27.67ID:rdp8uLCI0
>>613
すいません
Amazonで.NET Framework 4.8 とかMVVMでググっても出ないんですけど
具体的にどういった本がそれに当たるのでしょうか?
Xamarin,VisualC#,WPF,ASP.Net,.NET5 といったものが多く出てきましたが
自分の目的にはどれがあってるのか…
2021/10/27(水) 07:39:12.09ID:Zj1idbQoM
>>623
WDKの資料を読みたまえ
2021/10/27(水) 08:59:15.27ID:avsNPLVxa
初学ならWinFormsでポトペタして作ればいい
2021/10/27(水) 10:17:17.06ID:K7fhVGwtr
6年ぶりにC#に戻ってきそう
といってもWinForm(VS2015)しかやっていなかったけどこの6年で何か変わった?
2021/10/27(水) 10:22:46.47ID:vOa3m8Ss0
>>629
未だにWinFormsが最善
2021/10/27(水) 10:58:51.03ID:K7fhVGwtr
>>630
安定のWinFormで安心した
2021/10/27(水) 11:05:07.82ID:GTsNGXih0
前よりはWPFに移行した人を見るようになったかな
2021/10/27(水) 11:09:47.31ID:7ixyZ+/H0
そういえばWinUI3とかどうなったんだろう
2021/10/27(水) 17:41:50.42ID:pB4OZ2bT0
WinUI3は今のところ使い物にならない
2021/10/27(水) 21:30:14.38ID:joAdtZnc0
ボソ Blazor
636デフォルトの名無しさん (アウアウウー Sa45-15yw)
垢版 |
2021/10/27(水) 21:52:40.16ID:D6YfKbcXa
WinFormの質問です
ラジオボタンはAppearanceボタンにした時、選択時のボタン色が薄い青?みたいな感じになるんですが、これを任意の色に変更することは可能でしょうか
可能であれば方法を教えていただきたいです
よろしくお願いいたします
2021/10/27(水) 22:34:36.35ID:zKX95qu20
FlatStyleをFlatにしてFlatAppearanceで設定する
638デフォルトの名無しさん (アウアウウー Sa45-15yw)
垢版 |
2021/10/28(木) 07:27:49.03ID:W4bPGGQba
>>637
ありがとうございます!
今日試してみます
2021/10/28(木) 22:50:14.27ID:Qh3rpV2+0
HttpClientのメッセージロギングしてデバッグしたいんだけど、Chromeの通信デバッグ並に完全に読み取る事って簡単には出来ない?

HttpRequestMessage request = new(HttpMethod.Post, url);
Debug.WriteLine(request);

これだとその後にCookieContainer等からセットされるヘッダは読み取れない訳だけど、実際に送られるリクエストメッセージを完全に読み取る方法ってあったりする?
2021/10/28(木) 23:12:06.60ID:1dRy5ZCM0
ひどらー
2021/10/29(金) 07:08:11.82ID:AWR3O7P4M
メソッドの引数がenumの配列なのに
enumの値渡してもコンパイルエラーにならなかった
直しておいてね
2021/10/31(日) 09:17:59.59ID:Cn8y59vU0
最近はパターンマッチング使えるしenum要らない子かなーと思ったらHasFlagがあるんだった
2021/11/02(火) 08:48:28.47ID:0cW+u2MrM
初歩的な質問ですいません
初めて非同期処理を書いてみたのですが、awaitを使用して非同期メソッドを呼び出してもその結果を待たずに処理が進んでしまいます

非同期メソッドを呼び出す側はasyncを付与しています
awaitを使用すると結果を待つ、いわゆる同期的な動作をすると解釈しているのですが認証が間違っているでしょうか?
またこのように処理が進んでしまう場合はどこ疑うべきでしょうか?
2021/11/02(火) 09:32:37.14ID:hduQM35N0
>>643
漠然とし過ぎてエスパーし辛いから、もうちょい具体的にコード(の一部)書いた方がレス付きやすいんじゃないかな
2021/11/02(火) 10:18:25.51ID:c2KuzBrA0
>>643
待つ相手の戻り値がvoidになってるんじゃないか。
async voidだとawaitしても待たないから戻り値をvoid以外にするか
await Task.Run(()=>this.hoge())とかにする
2021/11/02(火) 10:18:48.97ID:NgYv9VNe0
>>643
> awaitを使用すると結果を待つ、いわゆる同期的な動作をすると解釈しているのですが認証が間違っているでしょうか?
間違ってます。awaitを使ってください。
awaitは非同期処理を同期処理の時と同じようなスタイルでコードを書くためのものです。
awaitより後のコードが現在実行してるタスクの後続タスクとして実行されます。
2021/11/02(火) 10:34:36.03ID:NgYv9VNe0
寝ぼけて出鱈目なこと書いてる…
>>646は無視してください
2021/11/02(火) 12:24:59.26ID:cIyGW0t20
いいってことよ
2021/11/02(火) 14:50:12.01ID:bBu0w1jV0
寝ぼけて車を運転したとかじゃなくてよかった
2021/11/03(水) 07:49:34.62ID:Mhdw9Pui0
static async Task Main(string[] args)
{
Console.WriteLine("a");
await TestFunc();
Console.WriteLine("f");
}

public static async Task TestFunc()
{
Console.WriteLine("b");
await Task.Run(() =>
{
Console.WriteLine("c");
string s = "";
for (var i = 0; i < 100000; i++)
{
s += "a";
}
Console.WriteLine("d");
});
Console.WriteLine("e");
}
>>650
2021/11/03(水) 10:42:03.46ID:JRNweyk60
>>650
レス先が無限ループ
2021/11/03(水) 13:33:54.93ID:Mhdw9Pui0
インデントないと見にくいかなーって思って。
JaneStyleで安価にマウスオーバーでインデント付き文字列が見えるけど
くろーむやfirefoxみたいな通常のブラウザだとインデントつかないね
2021/11/03(水) 13:35:29.85ID:Mhdw9Pui0
IDにマウスオーバーで十分か
2021/11/03(水) 13:58:16.43ID:b4M0oSaD0
そういう時はideoneを使うのです >>1 にも書いてあるでしょ
https://ideone.com/hPhtgv
2021/11/03(水) 15:28:38.22ID:IDkOxE7B0
>>652
横レスだが、それは知らんかった
JaneStyle使ってるが安価だと確かにインデント見えるな
今度使わせてもらうわ
2021/11/03(水) 16:45:31.20ID:MjMXPsh40
そろそろWPFに手を出してみたくて最小コード書いてコンパイルしてみたんですが

System.Windows のアセンブリ参照が無い

という状況。そんなことある?
VisualStudioは入れて無いんですが、VS入れないとアセンブリ追加されないってこたぁ無いと思うんですが。

アセンブリ参照が
Windows\assembly
Windows\Microsoft.NET\assembly
ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8
と3つあるのがよく分からんのですが、何をどうすればいいんですかね?
2021/11/03(水) 18:34:35.70ID:qKSDioFA0
WPF以前に.NETの開発に手を出してこなかった方かな
そのコンパイル単位で何の外部DLLを必要としてるかコンパイラに教える必要がある
WPFはとりあえずWindowsBase.dll, PresentationCore.dll, PresentationFramework.dllの3つが必要
何でコンパイル/ビルドしてるかによるけど
csc.exeなら/r:WindowsBase.dll /r:(以下略)みたいに/rを並べる
dotnetコマンド使ってるならそもそもdotnet new wpfでWPFアプリのテンプレート使えばいい
2021/11/03(水) 19:26:51.00ID:JRNweyk60
そのレベルのアホがなんでVisualStudio入れないでやってこんなとこで質問してんだ?
わからねぇなら一度は入れてやってみろよ
脳にクソでも詰まってるのか?
2021/11/03(水) 19:36:13.54ID:KWqDbkI50
C#はよっぽどでない限りVS使った方がいいと思うがなぁ。
dotnetとphpがまじっててー、両方同じサーバーで運用してるんですー、みたいなんじゃない限り。
2021/11/03(水) 19:43:03.87ID:2lWmGJD50
サーバー上で開発するわけじゃないだろ?
2021/11/04(木) 02:17:14.60ID:bpvG+88L0
外部…DLL…?
WPFって追加の参照設定が必要なんですかい
そーゆーのはコンパイラがなんかうまいことやってくれるもんだと思ってましたわい

しっかしこういう知識って皆どこで学ぶんですかね?MSDNは何処に何が書かれているかクッソ分かりづらいし
まぁ質問したら先に進めたんで質問するのが正解ですわ
2021/11/04(木) 07:20:30.47ID:6aa/TylFa
>>661
VSがうまいことやってくれるよ
2021/11/04(木) 07:33:58.46ID:9O3WRacJM
MSDNって書いてる時点で何となく世代の想像がつくなあ

これから勉強するということであれば
CommunityEditionなら無料で使えるんだからおとなしく最新のVisualStudio2019を入れて
MicrosoftDocsのチュートリアルから手を付けるのが無難な気がするけどな
Webで適当に検索したところで引っかかるのはゴミみたいな古い情報ばっかりで656みたいな無駄なところで手間ばかりかかりそうだし
2021/11/04(木) 13:21:18.54ID:npOR5gti0
C#の場合初心者がVS使わずにやるのはかなりの縛りプレイだと思うわ
まぁ自分もそれやって時間を無駄にしたんだけどさ
2021/11/04(木) 21:24:01.13ID:JWp5t/In0
SharpDevelopの立場
2021/11/04(木) 23:59:47.06ID:KTqjH7U90
分からないことを1つずつ潰してから次に進みたいってのはプログラマの真理だと思うが、
最近は技術範囲が広すぎて(というかフレームワークとかライブラリの守備範囲が広すぎて)、1つ1つ追いかけてると時間が足りない。

なので最近は分からないことあっても先へ進めてる。
我慢してやってると段々線で繋がってくる。

最初はめちゃくちゃ辛いが・・
2021/11/05(金) 00:50:23.04ID:/BQjYuPF0
正直大前提となるdllの参照とか全然意識したことないヘボだけどvsが全部やってくれるから困ったことない
そもそもc#でvs使わないプロジェクトなんて聞いたことないので・・・
2021/11/05(金) 01:09:17.93ID:x9FSSHOi0
VSでテンプレート選んでプロジェクトを作成したら最低限の参照は設定されているし
追加する必要があるものはDocsの各クラスの説明を見れば全部書いてあるからねぇ
2021/11/05(金) 01:25:04.81ID:0ONdwIqPd
.NET Core系の開発だと結構普通にプロジェクトファイルを手で弄る機会があるよ
最近はCI/CDのためにコマンドラインでビルドや実行をするケースも増えてる
もちろんプロジェクトファイルを1から手書きする必要はないけど、最低限dotnet コマンドくらいは使えて損はない
2021/11/05(金) 01:45:35.59ID:/BQjYuPF0
自動ビルド用にコマンド覚えようって話は同意なんですけど.net coreであってもコーディングはvsでやるほうが効率よくないですか?
よくわかってないんですが、サーバ上で開発するとかでvs使えないパターンがあるんでしょうか?
2021/11/05(金) 03:18:53.73ID:oTBYBYGO0
効率を考えるんだったらテンプレからコピペしてきて必要な箇所を自分用に書き換えるだけで済む
生産性の高さをウリにするというのは、そういうものを指す
コマンドを暗記してる暇があるなら、気の利いたコードスニペットを作った方が即戦力になるだろう
2021/11/05(金) 04:51:29.47ID:sW1R9FCxa
口が悪い人が多いねw

>>656の人の「基礎から理解したい」という心構えは(俺自身は全然持ってないからw)
俺なんか評価しちゃうけどなあ。

ただ、やろうとしていることは「応用範囲の広い基礎の習得」というより、
文明の利器が使えない状況を強いられるほぼありえない状況を想定した
「無人島サバイバル術」に近い気はするけどねw

もちろんそれだって趣味なら全然ありだよね。
2021/11/05(金) 04:56:58.86ID:sW1R9FCxa
あるいはあれだね、サラリーマン的に言えば
自分の会社でしか通用しない(他所に転職したら役に立たない)細かいローカルルールを
基礎だと錯覚している印象はまあある。
674デフォルトの名無しさん (アウアウウー Sacd-4MYJ)
垢版 |
2021/11/05(金) 07:30:08.22ID:ffJQa+Rya
VS使わせてもらえない会社には行きたくねー
2021/11/05(金) 08:05:48.55ID:FAEOfd5a0
>>672
俺がはじめた20年ぐらい前でもウィンドウから作るって勉強法は無意味って言われてた気がする

実際、引数がクソ長えapiの使い方がわかる程度でやっぱり
だからそれでどうしてウィンドウができるんだよって
疑問を解消できるものではない

だってMicrosoftがそういうの用意したんだからそういうものじゃん
っていう以外ない
それってどの階層でも言えることで.netframeworkを掘って言っても最後にはwin32api的なものが待っていると思う
676デフォルトの名無しさん (エムゾネ FFb2-2US9)
垢版 |
2021/11/05(金) 10:53:35.85ID:CgcDsDN+F
vsしか使えない香具師はいらん
2021/11/05(金) 10:55:48.16ID:bWDFcOZA0
まあc#のIDEはVS使えればええやろ
今どきあとVScode以外のエディタでc#の開発やらせん
組み込みはしらん
2021/11/05(金) 11:15:29.45ID:oTBYBYGO0
VSも使える人を募集してるのにVSしか使えない子ばかりやってくるんですね
でも今話してるのはVSすら使えない子ですってよ?
2021/11/05(金) 11:20:22.88ID:L2dsl9KQ0
Visual Studioが生成したプロジェクトファイルをそのままmsbuildとかdotnetコマンドに食わせればいいだけだから普段はIDEで開発しとけば問題ない
680デフォルトの名無しさん (エムゾネ FFb2-2US9)
垢版 |
2021/11/05(金) 12:12:43.07ID:CgcDsDN+F
WPF
https://www.youtube.com/watch?v=n4s1QJPbLog
2021/11/05(金) 13:14:34.40ID:GdvP7SmiD
>>677
組み込みでC#って、って話になりそう
2021/11/09(火) 20:52:40.99ID:GAlh0Hrk0
.NET 6.0にしただけで自作ライブラリの処理速度が向上してて感動したわ
2021/11/09(火) 21:30:22.13ID:sxBbpQqV0
うちも子供の夜泣きがなおった。
2021/11/09(火) 21:50:57.78ID:fKG42dqc0
俺社環は.NET Framwork4.0だからバージョン2つ上がったか・・・
2021/11/09(火) 22:21:42.09ID:HTXxUI4qM
.NET Frameworkの新規更新は既に終了しているので今後も更新されることはない
2021/11/09(火) 22:41:39.20ID:YSScyj9Q0
https://www.youtube.com/watch?v=aXKEWa0_YJg

上記の動画のようなメモリーを弄ったり読んだりするクラスや関数の使い方って
どういう方面の参考書買えば学べますか?
2021/11/09(火) 22:48:05.89ID:24WB74Rt0
面倒からサムネしか見てないけどメモリ弄ってチートをするって話?
であればC#は関係ないからリバースエンジニアリング関係の本じゃないかな
こういうのはWindowsならWin32多様するからC#よりもC++の方が楽
それにネイティブプログラミング力とリバースエンジニアリング力は比例するから普通にC++頑張るのが一番の学習になると思うよ
2021/11/09(火) 22:53:12.64ID:24WB74Rt0
どうしてもC#でやりたいならDllImportでkernel32.dllのOpenProcessとかReadProcessMemory利用すれば出来る
それらをスムーズに利用するためにunsafeなポインタ型を理解することから始めよう
2021/11/09(火) 22:54:54.11ID:YSScyj9Q0
>>687
回答ありがとうございます。
やりたいことはそのとおりです。
C++とWin32APIの参考書は買ったのですが
覚えることの多さとWin32APIのコードが長すぎて全然読んでませんでした。
Win32C++に比べたら簡単そうなC#でやりたいのですが遠回りでしょうか?
2021/11/09(火) 22:59:16.87ID:24WB74Rt0
>>689
プログラミング自体初心者であればC++はハードルが高すぎるから
チート用途としては多少不便なもののC++より難易度の低いC#から始めるのは良い選択
ただC#自体に他プロセスのメモリを読み取る機能は無いから結局Win32APIは避けて通れない道
2021/11/09(火) 23:25:39.41ID:YSScyj9Q0
>>690
やることが見えてきたので助かりました!
ありがとうございました。
2021/11/09(火) 23:57:26.58ID:24WB74Rt0
>>691
こんな感じでWin32APIも使うこと自体はそんな難しくはないがC/C++の経験が無いとMSDNを呼んで引数等をC#の型に変換するのは難しいだろうな
とりあえずゲーム側のアドレスが既に分かってるならプログラミング自体はそんな難しくはないが、
こういうのはそもそもアドレスを解析したりする工程で7割くらい時間使う訳で、その解析力については>>687で言った通り


[DllImport("kernel32.dll")]
static extern bool ReadProcessMemory(IntPtr handle, nuint lpBaseAddress, void* lpBuffer, nint nSize, nint* lpNumberOfBytesRead);

static int ReadInt(IntPtr processHandle, nuint address)
{
int result = 0;
ReadProcessMemory(processHandle, address, &result, sizeof(int), null);
return result;
}

static byte[] ReadBytes(IntPtr processHandle, nuint address, int length)
{
byte[] result = new byte[length];
fixed (byte* p = &result[0]) return ReadProcessMemory(processHandle, address, p, length, null) ? result : null;
}

static bool TryReadVector4(IntPtr processHandle, nuint address, ref Vector4 vec4)
=> ReadProcessMemory(processHandle, address, Unsafe.AsPointer(ref vec4), sizeof(Vector4), null);
693デフォルトの名無しさん (ワッチョイ 515f-1fFA)
垢版 |
2021/11/10(水) 16:30:41.62ID:63WV6EHr0
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
2021/11/11(木) 14:17:25.10ID:MHF4JUQN0
global usingは使ったほうがいいですか?
2021/11/12(金) 10:41:17.72ID:6Q5uv2vf0
>>694
今のところ積極的に使っていくものではないと思っています

参照)https://ufcpp.net/study/csharp/sp_namespace.html#global-using
2021/11/13(土) 03:10:29.50ID:ll3+gn2K0
>>695
なるほど! ありがとうございます
2021/11/13(土) 13:05:01.87ID:MewxXHvI0
いえいえ
2021/11/14(日) 23:09:12.89ID:6FVLDefc0
いわゆるフォルダ表示みたいな物をやりたいんですが
そのままフォルダみたいなGUIのパーツはないのですか?
リスト表示でごちゃごちゃやるしかない?
jpgの縮小画像表示みたいのしたいのですが
2021/11/15(月) 00:43:56.65ID:ElnRh6HP0
>>698
お前の中ではそりゃ説明不要なんだろうが、
こっちはウィンドウズアプリでやりたいのかWebアプリにしたいのかさっぱり分からんわけよ。

つまり出直して来い
2021/11/15(月) 02:44:59.38ID:RtrkD0cb0
>>699
さーせん
Windowsアプリです
2021/11/15(月) 03:15:53.30ID:x301xsWW0
そのままフォルダみたいなGUIのパーツは標準ではないな
サードのライブラリを漁ったらあるのかもしれんが, .NETのGUIライブラリとか紹介してくれる人って一切いないからよ
俺は聞いたことがない
2021/11/15(月) 12:19:23.67ID:5e0s5u8J0
自分は使ったことはないけど
Windows API Code PackにExplorerBrowserがある
Explorerのシェルをそのまま使うやつ
Windows API Code PackのMS公式配布は終わってるけど野良クローンがそこらに
2021/11/18(木) 06:05:39.84ID:vWUZiqZB0
ListViewで普通に組んでも手間は同じじゃねえの
えいやって組む気合が要るけど
2021/11/20(土) 12:40:32.20ID:z5N0QLxP0
jpgの縮小画像表示みたいのしたいって言ってるし
ファイルのサムネ表示自動でやってくれるならそうとう手間は減るんじゃ
705デフォルトの名無しさん (ワッチョイ 4e66-Iq3b)
垢版 |
2021/11/23(火) 22:23:05.47ID:mktz4Vub0
実行されたらすぐに音を出す方法はありますでしょうか
SoundPlayerだと数秒遅れて音がするので遅いなーと
2021/11/23(火) 22:42:27.25ID:igOtINqq0
一度無音で鳴らしておけ
2021/11/23(火) 23:26:35.28ID:jD7GGN7Ca
直接の回答ではないけど自分のブラウザのブックマークにこんなのあった
参考までに
https://social.msdn.microsoft.com/Forums/ja-JP/d5d5b7b1-2623-4aaa-b72e-53a065a14f69/win124501250312522123913889912434401801242512377123981239519968?forum=csharpgeneralja
2021/11/23(火) 23:28:04.51ID:lyBcl2PA0
とりあえずNAudio
2021/11/23(火) 23:33:32.53ID:Ln8GWMq+0
>>698
漏れは、Ruby で、selenium webdriver, nokogiri などを使って、

ローカルPC から画像ファイルを読み込んで、
それでHTML を作って、ブラウザを自動起動して表示している

# PCからランダムに、画像ファイルを10個取り出す
picture_paths = Dir.glob( 'C:/Users/Owner/Pictures/*' ).sample( 10 )

# 各画像の、img タグを作る。改行を削除する
picture_paths.each do | pict_path |
img_str = <<"EOT".gsub(/\n/, "")
<img src="#{ pict_path }">
EOT

img_node = Nokogiri::HTML::DocumentFragment.parse img_str # HTMLの断片を作る
puts img_node.to_html

出力は以下のように、10個のimgタグ
<img src="C:/Users/Owner/Pictures/a.gif">
<img src="C:/Users/Owner/Pictures/b.png">
<img src="C:/Users/Owner/Pictures/c.jpg">

これらをHTML内に入れて、スタイルを付けて、ブラウザで表示する。
Bootstrap でも何でも使える

driver.execute_script jsCode
で、JavaScript のソースコードも実行できる
2021/11/24(水) 00:37:25.12ID:UTQhKKIu0
c#スレだぞ
711デフォルトの名無しさん (ワッチョイ ef8e-1fs8)
垢版 |
2021/11/24(水) 01:12:22.68ID:LrWoqp0N0
>>709
死ねよ
2021/11/24(水) 01:18:09.65ID:t2sEbtBf0
NGにしてるから見えないけどどうせR○byコードの基地外がいるんだろ
ム板でRu○yは問答無用のNGで問題ないよ
2021/11/24(水) 19:29:25.53ID:V1paU5LVM
なんでc#スレで
るびぃでコード書いてんだよ
マイナー言語なんて苦労を背負い込むだけでなんもいいことないじゃん
2021/11/24(水) 21:38:17.16ID:hpdjZnMPD
触ったら負け
2021/11/24(水) 21:38:41.61ID:dSkd3ace0
>>709
病院行け
2021/11/25(木) 00:41:35.91ID:PBVYP90t0
これが噂のアレだったのか
matzに対する熱い風評被害
717デフォルトの名無しさん (ワッチョイ 86bb-Klv4)
垢版 |
2021/11/25(木) 08:51:17.22ID:gtvbwi7D0
どこかの言語は助成金タカリビジネスだって言うし、人々に忘れられて金が出なくなったら困るんだろう
2021/11/25(木) 11:04:46.39ID:F3lCPX8r0
JavaにだけではなくRubyにまで馬鹿にされるようになったC#。
2021/11/25(木) 12:27:20.06ID:Mkg3ZQ5MM
嫉妬されてんだね
C#より出来がいい言語って無いから
2021/11/25(木) 12:33:28.36ID:F3lCPX8r0
ここ10年の追加仕様がスクリプト言語ライクに寄ってるからな。
そういう輩を呼び寄せたのは自業自得。
2021/11/25(木) 13:33:06.27ID:T/f8nKzHp
このRuby妖怪は大昔からどこにでも現れるぞ
人間の常識に当てはめてはいけない
2021/11/25(木) 13:44:20.59ID:bDvmxdn90
>助成金タカリビジネス

これだから日本のIT(ITに限らないが)は競争力失ったんだぜ
2021/11/25(木) 17:04:18.60ID:Wf286/Al0
初心者です
Form1にtextBox1とbutton1のコントロールを貼りました これで実行してテキストボックスに文字を入力して
public void button1_Click(object sender, EventArgs e)
{
string st;
st = textBox1.Text;
}
ボタン押してこの部分は呼ばれるんですが st が空で入力した文字が入りません
テキストボックスのプロパティのTextに文字入力して実行してボタンを押すと
なぜかその文字だけは取得できます
この実行後の自己入力の文字だけ取得できないのはなぜなんでしょう?
2021/11/25(木) 17:32:50.23ID:R31YPF5K0
>>723
>st が空で入力した文字が入りません
これ、どうやって確認していますか?

何をどうしたいのかがイマイチ読み取れないけど、エスパーすると変数のスコープ関係なんじゃなかろうか
2021/11/25(木) 17:39:46.30ID:Wf286/Al0
確認は
st = textBox1.Text;
のところにブレークポイント置いてステップ実行でstの中身を見ています
st のところをグローバル変数にしてもローカル変数にしても結果は同じでした
プロパティからのText入力の時はちゃんと取得できてるのでこの記述は間違ってないように思うのですが
実行時の入力がなぜか見た目通りに反映されてないというか
2021/11/25(木) 17:40:22.28ID:Wf286/Al0
確認は
st = textBox1.Text;
のところにブレークポイント置いてステップ実行でstの中身を見ています
st のところをグローバル変数にしてもローカル変数にしても結果は同じでした
プロパティからのText入力の時はちゃんと取得できてるのでこの記述は間違ってないように思うのですが
実行時の入力がなぜか見た目通りに反映されてないというか
2021/11/25(木) 17:43:58.82ID:fHUfm92Y0
確認は
st = textBox1.Text;
のところにブレークポイント置いてステップ実行でstの中身を見ています
st のところをグローバル変数にしてもローカル変数にしても結果は同じでした
プロパティからのText入力の時はちゃんと取得できてるのでこの記述は間違ってないように思うのですが
実行時の入力がなぜか見た目通りに反映されてないというか
2021/11/25(木) 17:44:42.92ID:UMVhykjjM
確認は
st = textBox1.Text;
のところにブレークポイント置いてステップ実行でstの中身を見ています
st のところをグローバル変数にしてもローカル変数にしても結果は同じでした
プロパティからのText入力の時はちゃんと取得できてるのでこの記述は間違ってないように思うのですが
実行時の入力がなぜか見た目通りに反映されてないというか
2021/11/25(木) 17:46:16.25ID:fHUfm92Y0
すいません、書き込みできませんは続いたもので
2021/11/25(木) 18:00:06.75ID:R31YPF5K0
ブレークポイントで止まってるときに見えているのは代入される前の状態じゃなかったっけかな
例えば
private void button1_Click(object sender, EventArgs e)
{
string st;
st = textBox1.Text;
MessageBox.Show(st);
}
みたいなことをすれば、ちゃんとstに値が入っているのが分かると思う
2021/11/25(木) 18:11:13.29ID:fHUfm92Y0
MessageBox.Show(st); でも変化はありませんでした
自分の環境が壊れてるのかなあ、まだ入れてそんなに経っていないんですが
2021/11/25(木) 18:22:21.20ID:htMyv0Y1M
st = textBox1.Text;にブレークポイントを置くと実行される前に止まるのでstに値は入らない
ステップさせると値は入る
2021/11/25(木) 18:33:11.43ID:fHUfm92Y0
もちろんステップ実行で通過させています
今新規でこの部分だけでやったら正常動作しました
元のプログラムはprivate void dispatchKeyEvent(int k, int ev) とかいろいろ入ってるので
どれかが邪魔してるんでしょうかね、どれであるかまだ見当はつきませんが
2021/11/25(木) 18:40:21.80ID:jrUhzVLC0
じつは入力してるテキストボックスはtextBox1じゃない他の、とか
2021/11/25(木) 18:40:28.16ID:htMyv0Y1M
そうですかよかったですね
書き込んでよかったです
2021/11/25(木) 18:40:51.73ID:F3lCPX8r0
VSのデバッガは世界最強と言われて四半世紀経つが、
それでも見つからないバグもあるんだな。
2021/11/25(木) 18:41:57.10ID:htMyv0Y1M
この話題は終了したので蒸し返さない
2021/11/25(木) 19:17:43.13ID:Xt1TOEJK0
お前の中でそうだとしても他人もそうだとは限らんぞ
境界性の方かな?
2021/11/25(木) 19:53:08.36ID:VTGerqNo0
>>733
そのいろいろ入ってる処理の中で数値だけ入力許可するとかやってるのかもね
2021/11/25(木) 19:53:10.75ID:vpPwZGSJ0
原因がわかりました
private void Form1_Load(object sender, EventArgs e)
{
InitializeComponent();
}
この InitializeComponent(); を消したら直りました
うーんデフォルトにはないこれがなんで書かれてたんだろ…
2021/11/25(木) 20:28:02.94ID:rnpiht7q0
いいオチがついたね
2021/11/26(金) 04:08:00.62ID:xlE79o2q0
OS標準のC#やpowershellだけでGUIポトペタしたいんだけど
そういう気の利いた野良C#コードやスクリプトってないかな
なければ作るけど
743デフォルトの名無しさん (ラクッペペ MM8f-aw+H)
垢版 |
2021/11/26(金) 09:09:16.14ID:LP8DajNXM
公式でだめな理由は?
2021/11/26(金) 09:46:45.87ID:kuMbCEJEM
qiitaのc#の記事トレンドでVSCODEでWPF開発みたいな記事が人気出てるので
初心者がわからないでやってるんだろ

WPFをデザイナなしで入門しようなんて無理すぎる
2021/11/26(金) 09:53:31.95ID:0xm49782d
会社などのポリシーでVS入れられないんじゃないの
ちゃんと話を通すか転職するのがベストソリューションだよ
2021/11/26(金) 09:57:13.67ID:kuMbCEJEM
容量が大きいから入門コストが高く感じるんじゃないかなと本当は思ってる
2021/11/26(金) 13:07:10.90ID:zc+TosE9a
前も書いたけど「無人島サバイバル術」的な動機なんだと思うよ
2021/11/26(金) 13:22:54.34ID:w/jjPeoLM
客先で下請けイジメ受けてた時はWPFよりFormsの方が楽だったな
WPfはideの助け無しに書くには難しすぎる
2021/11/26(金) 13:43:39.30ID:imi0wC2E0
>>748
Formsの方がイジメやすかったってこと?
2021/11/26(金) 15:01:33.91ID:DinmxWOxd
>>743
客先の環境でポトペタしたい
というかいまだ標準でできないっぽいのに驚かされた
気の利いた外人もこの世に居なかった
751デフォルトの名無しさん (ラクッペペ MM8f-aw+H)
垢版 |
2021/11/26(金) 15:10:53.78ID:LP8DajNXM
予想外の返事が来たな
つまりVSのポトペタを知った上で無ければ自分で作るとおっしゃるのか

素晴らしい、ぜひ頼む
2021/11/26(金) 15:18:50.09ID:jCnjnABkM
そりゃ外人ならVS入れるか俺が何もしないか選べやファ○クで終わりだからな
その程度の交渉ができないなら真面目にこの業界辞めたほうがいい
2021/11/26(金) 15:20:23.60ID:4MNCxtKQ0
俺も会社のPCでOS標準のcsc.exeとメモ帳でFormsアプリ作ってる
開発とは無関係な部署だからVisual Studio入れらんないけど、
仕事楽にしたくて自分や同僚用にアプリ作ってる
でも一番喜ばれるのはExcelのマクロだわ
2021/11/26(金) 16:01:47.02ID:mr+2ogIa0
ここは修行僧のスレですか?
2021/11/26(金) 16:18:03.09ID:klayVQs50
少なくとも「初心者」がするこっちゃないわな
2021/11/26(金) 16:21:04.43ID:f6QuaNXh0
UNIX入門書なんて今だにviで四苦八苦してccだから問題なし。
2021/11/26(金) 18:34:19.03ID:b37qsw15a
これも前も書いたけど、「道具(IDE)に依存したくない」って動機は理解できる部分もあるけど、
道具なしで何か作れるようになったところで何か潰しが利く汎用的なスキルが身につくわけじゃないことは
理解した方がいいよね。
2021/11/26(金) 18:46:29.22ID:jCnjnABkM
いやGUIビルダーをもし自前で作り切れたら、十分すぎるほどに潰しが利く汎用的なスキルが身についてると思うぞw
まあ成果物としてGUIビルダーそのものはほとんど無価値だから、同じ苦労をするならもっと評価されるようなものに労力を投資したほうが賢明だとは思うが
2021/11/26(金) 18:47:07.16ID:w/jjPeoLM
生産性をあげる気がない現場ではゆっくり仕事して残業代を稼ぐ事に集中したほうがいい
調べ物してるフリして全然違うこと勉強したりね
760デフォルトの名無しさん (アウアウウー Sa5b-RZfR)
垢版 |
2021/11/26(金) 19:14:31.18ID:Hq7eoo6Pa
csc最強よ
2021/11/26(金) 19:21:34.52ID:zTuNkt7k0
>>757
まあ、客先で普通にvisualstudioインストールできない環境でツール作りたいとき不便だよねっていう
2021/11/26(金) 19:27:22.07ID:5avlXM6S0
客先で自作IDE作るの?
763デフォルトの名無しさん (ラクッペペ MM8f-aw+H)
垢版 |
2021/11/26(金) 19:30:30.99ID:OLQKN+EBM
外人の作ったツールはインストール出来るの?
2021/11/26(金) 19:33:02.80ID:SIO0lcXhd
>>763
vscodeはインストーラ実行なしで使える
765デフォルトの名無しさん (ラクッペペ MM8f-aw+H)
垢版 |
2021/11/26(金) 19:37:01.63ID:OLQKN+EBM
exeならいいのかーい

どんな企業だ
2021/11/26(金) 19:45:09.60ID:imi0wC2E0
>>765
そんなん普通だろ
管理者権限ないとインストーラ実行できないから使えないってだけ
767デフォルトの名無しさん (ラクッペペ MM8f-aw+H)
垢版 |
2021/11/26(金) 19:51:17.82ID:OLQKN+EBM
Windows365で解決だな
ブラウザだけで何でも支えるぞ
2021/11/26(金) 20:00:36.78ID:DpLtSjUtd
>>767
仮想マシンにインストールするvisualstudioのライセンスを買ってもらわないと解決しない
無料版で仕事するとライセンス違反の可能性が高い
2021/11/26(金) 20:01:59.01ID:XtGzaRsE0
>>758
GUIビルダーを作れるのは有効なスキルかもしれないけど、それをメモ帳で作れるってのは役に立たないスキルだろ
770デフォルトの名無しさん (ラクッペペ MM8f-aw+H)
垢版 |
2021/11/26(金) 20:12:14.73ID:OLQKN+EBM
>>768
VS2017エックスプレスがあるじゃない
2021/11/26(金) 23:15:39.69ID:GA4//E/K0
WPFでアプリを作ってて、datagridからデータのソースを取得する関数を作っているのですが、各ウインドウやページごとでdatagridのソースに使用しているクラスの型が違うため、関数でうまく処理できません
https://i.imgur.com/fZfQcmG.jpg
どうすれば良いでしょうか。
2021/11/27(土) 01:31:56.47ID:9VTgh3sM0
>>771
同じDataTable使っているならDatagridとDataTableのBindingで事足りるような気がするけどやりたいことと違うような気がしてならない
2021/11/27(土) 08:28:16.16ID:ijZYSH260
>>771
そういうときのためのC#のInterface言語機構じゃないのか?
つまり根本設計が悪い

あと基本的にUIコンポーネントを引数にとる設計も良くない。
>>772が言っているようにDataContextにぶちこんでいるデータを引数にとる設計にする。
ObservableCollectionのリストになっているのであれば、データクラスを追加するだけで
自動的にDataGridにも行が追加される。
2021/11/27(土) 08:38:10.34ID:dEEe+cTy0
あーdatatableをグローバル関数にすればいいってことですね
合ってます?
2021/11/27(土) 08:58:19.69ID:Zh9GgFO40
単にスタンドアロンのGUIアプリをIDE無しで作りたいという話なら
GUIは全部Webviewの中に押し込んじゃえばいいじゃない

ダメ?
2021/11/27(土) 09:02:32.95ID:YXRTZzMI0
更にowin乗っければ完璧だな
2021/11/27(土) 10:12:23.04ID:jTZUbSpl0
今考えてるのはそんな高級なものじゃないので。
フォームと部品の位置取りをGUIでズリズリやりたいだけなので。
まず既定のフォームを表示する。実際には本物のフォームを表示。この時フォームにグリッド線とかそういうのが表示できたらいい。
貼り付けるコントロールは部品の種類を選んでからフォーム上でマウスで始点と終点を決めて適当に部品を配置する。
各フォームやコントロールのサイズやスタイルはいつでもいじれるようにする。
コンボボックスとかは仮データが入れられるとよい。
出力でC#やpowershellのコードが出てくる。
割と簡単そう。
778デフォルトの名無しさん (ワッチョイ ffbb-Z91i)
垢版 |
2021/11/27(土) 11:13:15.88ID:9SYpyLpc0
GUIをテキストで直書きするのは、Windowsアプリを昔から作ってる人からしたら変に見えるのかも知らんが・・・・・
それを離れたら、Webでもスマホのアプリでも、どちらかというとメジャーな方法だろう
2021/11/27(土) 11:16:09.97ID:YXRTZzMI0
guiアプリを昔から作っていた人は
rcを手書きすると思うんだが?
2021/11/27(土) 11:22:29.53ID:Ri5oFJRs0
WindowsアプリでもXAML直書きが手っ取り早くて好き
2021/11/27(土) 12:02:37.59ID:y6aTFMu6M
Xamlはボリューム大きすぎて実用化には程遠い印象
2021/11/27(土) 12:12:46.30ID:Jeyt5rEW0
XAMLなんてもう終わったものではw
当時からクソ扱いだったし
何でもかんでも詰め込み過ぎなんだよな
2021/11/27(土) 12:13:46.60ID:kX7QbhiL0
xamlは手書きが楽で良いよな。Formsのdesigner.csは人が触るもんじゃなかったし。
2021/11/27(土) 12:25:44.24ID:Zh9GgFO40
それは単に
XAMLはデザイナがクソなのでは?
2021/11/27(土) 12:39:12.25ID:y6aTFMu6M
条件分岐したいだけなのにデータトリガーとかテンプレートセレクターとか書かされるのはキツかった
二度とやりたくない
2021/11/27(土) 12:51:58.50ID:kX7QbhiL0
>>784
XAMLに限らないデザイナ一般の話。
いちいちGUIでちまちまやるよりテキストエディタの方が楽なことも多い。
2021/11/27(土) 12:56:17.64ID:1K/bt2mK0
そんなの想像もつかねーな!!!
2021/11/27(土) 13:30:09.59ID:tTgWIdmh0
ぶっちゃけXAMLじゃなくて、JSフレームワークみたいにほぼHTMLで良かったのでは?とはたまに思う
もしくは振り切ってあのホームページビルダみたいに・・
2021/11/27(土) 14:03:43.25ID:1K/bt2mK0
オブジェクト思考に反するよな。
インターフェースの使い方さえ分かりやすければ内部の実装なんてどうでもいい。
内部を自分で弄ることか前提のフレームワークなんて流行らないよ。
2021/11/27(土) 17:58:09.44ID:QNhwUt810
>>780
WindowsアプリはDirect2D直描画が手っ取り早くて好き
2021/11/27(土) 20:07:13.99ID:sqiNT/JOd
>>790
入力BOX作るの本当に手っ取り早いか?
2021/11/27(土) 20:17:59.66ID:9VTgh3sM0
WPFは適当なメッセージボックス作るのですらWeb見ないといけないのは酷すぎるわ
2021/11/27(土) 20:26:37.55ID:ISXjPYyUd
>>792
使ったことないフレームワーク使うならなんでも最初はそうだろ
794デフォルトの名無しさん (ワッチョイ b710-cp6m)
垢版 |
2021/11/27(土) 21:38:36.54ID:vNEPDJXe0
ここで文句言ってるやつが作ったWPFのアプリみてみたいわw
2021/11/27(土) 21:40:32.73ID:w2+KtZN60
文句言っている奴はそもそもWPF使ってないんだろう
2021/11/27(土) 21:46:27.61ID:1K/bt2mK0
VB6、Delphi触ってればwinformは入門書すら読まんでも移行できる。
Excel覚えれば他のWindowsアプリはみなヘルプすら読まないのと同じ。

しかしWPFは明らかに毛色が違う。前時代的、古典的なUNIX文化を持ち込みすぎ。
2021/11/27(土) 21:53:05.65ID:mNCXvF6fd
>>796
XAMLやMVVMがUNIX文化なの?
2021/11/28(日) 21:38:47.37ID:3wuNZOM40
ツールとかデータ処理ぐらいにしか使ってないからWPFなんて使う事ないんだよなぁ
出た当初(もう10年以上も前)少し試しに作ってみたけどめんどくさいだけw
結局、見た目とかどうでもいいようなアプリでWPFにする理由が全く無いという結論に
WinFormsより作りやすいものいい加減作れよwって思う
799デフォルトの名無しさん (ワッチョイ 1fbd-E3e6)
垢版 |
2021/11/28(日) 21:47:54.57ID:nPvqCxTT0
幅500長さ900固定のpictureboxに表示する図形倍率について質問です。表示図形幅長の中に大小様々な丸や四角等の図形があります。

@pbox四周50の余白を設ける。最大図形表示幅400長さ800。
A最大幅長さ以内はpbox中心とした位置へ描画
B最大を超える場合は幅長の比率計算して縮小表示

ここまでは行けたのですが当たり前ですがAの場合はいい感じで表示出来て納得なんですが、Bの場合だと図形幅長さが大きすぎると縮小によって格好悪いのですがいい方法等ありませんか?
出来るか分かりませんが、そのままの大きさで描画してスクロールバーとか、マウスで拡大縮小とかですかね?何が参考になるサイト等あれば教えて頂きたいです。
2021/11/28(日) 21:56:56.55ID:V9ym8M+ur
何言ってるのかんからんからスクショなり図なりで示してみたら?
2021/11/28(日) 21:57:24.04ID:V9ym8M+ur
んからんから

わからんから
2021/11/28(日) 21:58:27.52ID:5dBNAjGC0
>>799
スクロールバーを付けて画像を表示する
https://dobon.net/vb/dotnet/graphics/scrollimage.html#section1
803デフォルトの名無しさん (ワッチョイ 9f79-TeYZ)
垢版 |
2021/11/28(日) 22:42:52.70ID:fetzwBgk0
C#ってなにで勉強するのが効率良いの?参考書?
2021/11/28(日) 22:48:18.27ID:QHerQIRk0
結局何か作るのが一番効率良いんだわ
作る過程でわからんことググって学ぶ
805デフォルトの名無しさん (ワッチョイ 9f79-TeYZ)
垢版 |
2021/11/28(日) 23:08:22.34ID:fetzwBgk0
サンキュー!
でも文法くらいは勉強しといた方がいいんじゃないの?
2021/11/28(日) 23:10:25.10ID:+ZppHvH90
知らないせいで車輪の再発明何度もすることあるしね
C#の参考書に良書と言えるのがなかなかない気はする
2021/11/28(日) 23:11:57.25ID:5dBNAjGC0
>>805
個人的に「文法って何?」ってレベルだけどググりながら調べてアプリいくつも作ってる
人に教えたいとかならそういう勉強したらいいけど、それ以外なら不要
2021/11/28(日) 23:29:11.96ID:QHerQIRk0
文法もvsがインテリセンスで教えてくれるし、どこにどんなデータが詰まってるかもデバッグで覗けば推測できる
vsのおかげでテキストで調べる時間が地味に短縮できる
809デフォルトの名無しさん (アウアウウー Sa5b-UL9W)
垢版 |
2021/11/28(日) 23:46:58.95ID:rti4oQQSa
昔formアプリ作るときにc#でやろうとしてイディオムがなんちゃらみたいなの本はお世話になった気がする
2021/11/29(月) 01:24:04.95ID:leVTYOqkd
>>806
車輪の再発明は(コーディングの)勉強中なら良いと思うけどね。
いざ物を造るって時にはやっぱり数多あるライブラリをどう使うかがコスト削減につながるから、欲しいものを見つける力、利用する力ってのは必要だけど
2021/11/29(月) 07:53:47.43ID:nkF9doEfM
>>803
軽く目を通すべ
http://www.kumei.ne.jp/c_lang/index_cs.html
2021/11/29(月) 11:16:06.45ID:BRD3cVdW0
>>810
ライブラリ程度ならまだしも、
極端な話でいえば条件分岐のelseを知らないから全部ifで書くって事が起こりうる
だから子細とは言わないまでも全容を把握する必要はあるってこと
2021/11/29(月) 12:14:41.39ID:HZy6GzpY0
elseなんて害でしかないけどな。
2021/11/29(月) 13:49:48.73ID:h6SrhnyS0
ビットマップ消去埋めで
pen.Color = Color.FromArgb(0, 0, 0, 0);
gr.FillRectangle(pen.Brush, 0, 0, 200, 100);
こうすると透明色は何も描画されません(Javaの場合は透明色で消されます)

pen.Color = Color.Black;
こうすると透明でない黒で消去されます
Javaのように透明色で消すにはどうすればよいですか?
2021/11/29(月) 14:18:42.70ID:692Uu7Kx0
>>814
gr.FillRectangle(new SolidBrush(Color.FromArgb(0, 0, 0, 0)));
でもだめかい?
2021/11/29(月) 14:19:42.44ID:692Uu7Kx0
>>815
gr.FillRectangle(new SolidBrush(Color.FromArgb(0, 0, 0, 0)), 0, 0, 200, 100);
だった
2021/11/29(月) 14:26:25.88ID:fU6A/Nzl0
同じ結果のようです
2021/11/29(月) 14:33:18.46ID:692Uu7Kx0
>>817
これだな
http://bbs.wankuma.com/index.cgi?mode=al2&;namber=37839&KLOG=65
2021/11/29(月) 14:34:38.77ID:692Uu7Kx0
リンクおかしかった
http://bbs.wankuma.com/index.cgi?mode=al2&;namber=37839&KLOG=65
2021/11/29(月) 14:36:41.83ID:692Uu7Kx0
EdgeからURL貼り付けると&のあとに;が入るな
;を抜いたURLです。
2021/11/29(月) 15:15:14.82ID:fU6A/Nzl0
一応できました 他の事象もでましたが
ありがとうございます
2021/11/29(月) 15:43:55.34ID:eIWrHApta
>>819
これがGraphicsのプロパティーなのは何か間違ってる気がする

まあすべての描画メソッドにいちいちこのオプションを指定する
オーバーロードを実装させるのは煩雑だって判断なんだろうけど
2021/11/29(月) 16:34:12.32ID:/HK8Z1xK0
実はこのあとに次の文字描画が続くのですが
gr.DrawString("ABC", font, pen.Brush, x, y);
一度これをしてしまうと
gr.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;

後でSourceOverに戻してもgr.Dispose();して新規作成しても
DrawStringが例外発生して文字が描画できないのです
これの原因がわかりません
2021/11/29(月) 17:42:32.66ID:daOVtdvf0
雑に作っただけだと再現しないねえ
GraphicsのSaveとRestore使ってみるとかどう?

var bmp = new Bitmap(128, 32, PixelFormat.Format32bppArgb);
var f = new Form() { BackgroundImage = bmp };
f.Click += (s, e) => {
var now = (int)DateTime.Now.Ticks;
using (var brush = new SolidBrush(Color.FromArgb((now >> 16) & 0xff, (now >> 8) & 0xff, now & 0xff)))
using (var g = Graphics.FromImage(bmp)) {
g.Clear(Color.Red);
g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
g.FillRectangle(Brushes.Transparent, new Rectangle(32, 8, 64, 16));
g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver;
g.DrawString("あいうえお", new Font("メイリオ", 12f), brush, 0, 0);
}
f.Invalidate();
};
Application.Run(f);
2021/11/29(月) 17:54:00.35ID:/HK8Z1xK0
手数かけて頂いてありがとうございます
今丁度SaveとRestore使っていました
なんとか解決できたようです
ありがとうございます
2021/11/29(月) 23:14:42.20ID:Vvd11AJl0
初めてC#でTaskを触りましたが、分からないことがあるため知っていたら教えてください。
ボタンをクリックしたイベント(1階層目)から3階層下の関数内でTask.Runをして4階層目の関数を実行して3階層目にawaitを付けました。
3階層目の関数は待っているのですが、2、1階層の関数は待たずに進んでしまいました。
原因分かる方いらっしゃいませんか?
イメージとしては↓の感じです。
void btnClick()
→void test1(←進んでしまう)
→→void test2(←進んでしまう)
→→→void test3(←ここでtest4をawait)
→→→→void test4
2021/11/29(月) 23:18:35.41ID:daOVtdvf0
voidなメソッドはawaitできない
test1からtest4まで全部Task返すようにしてそれぞれawaitして
2021/11/29(月) 23:25:00.09ID:6/yij7hO0
これがasync汚染か
2021/11/30(火) 00:27:25.41ID:LFRa8U690
そういう時はtest1〜4を全部同期メソッドにして
await Task.Run(()=>test1());
に変更する
2021/11/30(火) 05:27:43.45ID:YI8pY0990
ありがとうございます。
そうだったのですね、知らなかったです。
btnClickもtest4の処理が終わるまで後続処理はしないようにしたいので、btnClickまでreturn task?するようにしてみます。
2021/11/30(火) 11:13:24.34ID:46JZSEzy0
タイマー定期処理を行いたいです
public Form1()のところで timer = new Timer();〜Interval〜EventHandler(Timer_Tick);の記述をしています
Timer_Tickの中でInvalidate();がありOnPaintで画面の更新描画がされるようにしています
Form1上のボタンを押すとtimer.Start();の記述があり
for(x++){}のループの中でビットマップへ線の連続描画がされるようにしています
予想では線が右にずれながら描画される姿が連続的に見えると思ってたのですが
forが終わるまで真っ暗で全部描き終わってから最後に描画の全貌が表示されてしまいます
forループで描画中はTimer_Tickが呼ばれてないようです
ループ中も定期で呼ばれるようにするにはどうすればよいでしょうか?
2021/11/30(火) 11:21:49.74ID:46JZSEzy0
forの中というか実際はもっといろいろな処理が入っていて
全体が終わるまでは数秒かかるかんじになってます
Console.WriteLine("Timer_Tick呼ばれた"); でチェックしたのですがTimer_Tickは呼ばれてないようです
2021/11/30(火) 12:27:33.83ID:qX5mLnYT0
>>832
forループを別スレッドか非同期処理に入れる
2021/11/30(火) 13:53:17.77ID:c6SfutN/a
>>831
タイマーのイベントハンドラを実行するのはちっさいおじさん(UIスレッド)
の仕事なので、当然のことながらちっさいおじさんが別の仕事をしている
時には呼ばれない。

ちっさいおじさんは別の仕事(forのビジーループ)にかかりきりで忙しい。
だからTimer_Tickは実行されない。
2021/11/30(火) 14:10:35.52ID:+pE1HCGZ0
タイマーは複数種あるんですね
System.Timers.Timerのタイマーでなんとか解決できましたm(_ _)m
2021/11/30(火) 14:33:06.41ID:nsEaThE+r
ゴミ言語
837デフォルトの名無しさん (ワッチョイ ffbb-Z91i)
垢版 |
2021/11/30(火) 14:58:37.89ID:OTX12hhF0
>>835
どっち道、UIスレッド上でfor文がループしてる途中なんだろ?
そのタイマーからUIを書き換えるのは、たまたまその時は動いていてもまずいだろう・・・・
C#の言語自体なんて出来ても何にもなんないんだし、先に情報科学の基礎を固めた方がいいんじゃないの
2021/11/30(火) 15:58:44.14ID:ARnSQzz0r
ウンコ言語、async/waitでUIなんて作ってるwww
2021/11/30(火) 16:26:44.72ID:2niMnZWKd
>>837
C#できてもなんにも何にもなんないってどういうこと?
2021/12/01(水) 08:49:58.20ID:5XL66mYQa
>>838
C+SDKじいさん乙!
2021/12/01(水) 12:12:03.66ID:GG/I4Skr0
ちょっと待って!>>837がいい事言った
>先に情報科学の基礎を固めた方がいいんじゃないの
2021/12/01(水) 12:58:21.55ID:OSLu0EtY0
UIスレッドの使い分けってどんなサイトで勉強すればいいの?
2021/12/01(水) 13:02:10.03ID:R9kNDfRh0
できるふりしてソフトウェア開発部門へ就職し、
業務利用されるソフトを作るのが一番の近道

はっきりいって独学じゃムリ
844デフォルトの名無しさん (アウアウウー Sa5b-UL9W)
垢版 |
2021/12/01(水) 21:53:31.39ID:d+Yo+uULa
使い分けも何もUIのメインスレッドだけで処理してたら具合悪いとなれば別スレッドでやるしかないんじゃ?
普通に調べればinvokeやらなんやら色々出てくるでしょ
適当に調べて自分でデバッグしてみれば最適解見つかると思うけど
845デフォルトの名無しさん (ワッチョイ bfe9-3PcT)
垢版 |
2021/12/01(水) 21:53:49.92ID:kCj+gN+70
Excelから実行ファイルを起動するとカレントディレクトリが起動したExcel基準になるようです
実行ファイルを直接動かすとカレントディレクトリが実行ファイル基準になるので困ってます
世間様ではどのように解決してるのでしょうか
2021/12/01(水) 21:58:15.63ID:K43krm2i0
>>845
どこがカレントディレクトリだろうが動くようにプログラミングする
847デフォルトの名無しさん (ワッチョイ bfe9-3PcT)
垢版 |
2021/12/01(水) 22:43:33.38ID:kCj+gN+70
>>846
そうしたいですが
コンフィグでパス指定すると移動した時に動かなくなったりするんで何が良いのか悩んでます
2021/12/01(水) 22:54:45.65ID:K43krm2i0
>>847
コンフィグにはカレントディレクトリからの相対パスを記述しているのかな。
だとするとexeのあるディレクトリのパスとコンフィグにある相対パスを結合させた絶対パスを使うんだよ。
2021/12/02(木) 01:45:33.06ID:Cd8C69Nla
っていうか今時そんな四半世紀前のスタイルを使ってる人がいるんだねw
2021/12/02(木) 01:53:55.42ID:Z/KKuSnhd
>>849
コンフィグってconfig.sysのことと思ってる?
2021/12/02(木) 02:22:27.63ID:Cd8C69Nla
appのことでしょ
いや時代錯誤だなと感じるのは「カレントディレクトリ」という概念。
そんなものにわざわざ依存する必要ってあります?
どこにもないよね。
2021/12/02(木) 03:41:52.86ID:tCUN1pkY0
まあまあ、
exe のディレクトリ==カレントディレクトリ
前提でコーディングするって初心者あるあるだからそうやって馬鹿にするなよ
2021/12/02(木) 06:53:06.04ID:BMgfYVOUM
>>852
> exe のディレクトリ==カレントディレクトリ
これ Excel あるあるなんだけど…
初心者あるあるとか言ってるお前が一番馬鹿w
854デフォルトの名無しさん (ワッチョイ 5701-3PcT)
垢版 |
2021/12/02(木) 07:18:07.12ID:HY05Xx580
ExcelのVBAと連携する小さいシステムなので伝統的なカレントディレクトリ使ってるんです
Excelと実行ファイルを同じフォルダに入れれば解決なのでしょうが実行ファイルのライブラリが多いのでExcelが埋もれて見難いなとそれはそれで困り
2021/12/02(木) 07:27:14.41ID:YVKX2AcGM
pushd popd は?
2021/12/02(木) 11:49:27.62ID:7dnZygEt0
namespace System.Collections.Generic
{

public class List<T> : ICollection<T>,…の中にある、
public void Add(T item);の具体的な処理(リストの最後に加える)はどこに書いてあるのでしょうか?
2021/12/02(木) 12:19:20.09ID:c3Ghpzze0
.NET Frameworkならmscorlib.dll, .NET 5以降ならSystem.Collections.dllの中
ソースコード見たいなら
.NET Frameworkのはreferencesource.com
.NETのはgithubのdotnet/runtime
2021/12/02(木) 12:58:34.73ID:07tMJNiS0
>>854
VBAからexe起動する際にそのexeにとってのカレントディレクトリを指定する
exeに渡す引数じゃなくて、exeの実行環境としてね
2021/12/02(木) 15:25:00.14ID:HUSWEurn0
>>854
ExcelをC#のライブラリとして使う方向にしたら?
普通はそうする
2021/12/02(木) 16:02:12.03ID:B97F3cDod
VSTOでExcelの拡張をC#で書いてしまえば
2021/12/02(木) 18:17:26.30ID:7pZIqj+v0
>>845
そもそも論としてWindowsではカレントディレクトリの扱いが環境として定義
されるようになっているので、プログラミングしてアプリを作るときにカレント
ディレクトリっていう使い方をするならば自分で必要な設定を行えば良いんだよ

まぁお約束(嫌いな人ゴメンねw)でdobonだけど

https://dobon.net/vb/dotnet/file/currentdirectory.html
2021/12/02(木) 19:13:04.88ID:IM4axE/K0
dobonいいじゃん
俺の量産するコードの半分はdobonのコピペだ
2021/12/02(木) 20:21:44.09ID:2Y5uTKRe0
Excel VBAからどうやってEXE起動してるのかしらんが
必要ならカレントディレクトリ変えればいいだけじゃないのか
2021/12/02(木) 21:56:32.95ID:7dnZygEt0
>>857
ありがとうございます。問題が解決しました。
次に湧いてくる疑問なのですが、

Visual StudioでList<T>を右クリックして、「定義へ移動」をすると。下のように書かれています。

//
// 概要:
// Adds an object to the end of the System.Collections.Generic.List`1.
//
// パラメーター:
// item:
// The object to be added to the end of the System.Collections.Generic.List`1. The
// value can be null for reference types.
public void Add(T item);

初心者としてはreferencesource.comにあるように↓こう書かれていたらわかるのですが

public void Add(T item) {
if (_size == _items.Length) EnsureCapacity(_size + 1);
_items[_size++] = item;
_version++;
}

なぜこれで動くのでしょうか? そしてどうして下のように処理を書いてないのでしょうか?
2021/12/03(金) 00:14:41.65ID:QhpimBIa0
> なぜこれで動くのでしょうか?
mscorlib.dllの中にコンパイル済みのが入ってるから
> そしてどうして下のように処理を書いてないのでしょうか?
コンパイル済みのしか入ってなくてソースがないから
2021/12/03(金) 00:52:15.83ID:z+zUeQIZ0
ILSpy使えばmscorelibも含めてC#に逆アセンブルしたソースコードを直接確認できるよ
2021/12/03(金) 20:46:41.26ID:9rfUUeSM0
>>865
ありがとうございました。スッキリしました。
なるほど、こんな感じで動いているのですね。

>>866
ILSpyを使ってみました。これは便利そうですね。
すごく勉強になりました、ありがとうございます。
2021/12/04(土) 09:48:16.38ID:+8uP6ahU0
VCLは偉大だった
2021/12/04(土) 12:39:42.98ID:3AJK8KN00
利用者は尊大だった
2021/12/04(土) 15:21:42.70ID:iCwoSy6wa
逮捕者は日大だっあ
2021/12/04(土) 19:18:15.48ID:RmSrjW3jM
5chが高齢化してきてこんな感じでレベルの低い無駄なレスが増えてってる
2021/12/04(土) 20:11:05.81ID:grkGode/0
S/N比は昔からたいして変わってないだろ
昔の方が良かったなんてのはそれこそ年寄りの繰り言だ
2021/12/04(土) 20:14:22.47ID:KZXGnJ6pM
> 5chが高齢化してきてこんな感じでレベルの低い無駄なレスが増えてってる
>>871 のことだなw
2021/12/04(土) 20:40:20.96ID:RmSrjW3jM
年を取り感受性が低下して正常な感性が失われて昔も変わらないと言う
ジジイのダジャレを垂れ流すスレではないぞここはw
2021/12/04(土) 20:45:50.00ID:grkGode/0
>>874
お前のクソレスがダジャレ並だと言ってるんだよ
まぁ俺のもだがな
2021/12/05(日) 00:05:53.41ID:nyTfINJm0
ダジャレを言うのは誰じゃ
2021/12/05(日) 05:39:51.38ID:xWrtzU7s0
>>870
これは最高につまんない
878デフォルトの名無しさん (ワッチョイ ce89-PP5C)
垢版 |
2021/12/05(日) 19:03:31.29ID:a+muEo/d0
ASP.net MVC 3.1を触り始めたんだが、これ、どんな些細な変更もいちいち発行しないと見れないのかな?
いままでのように「IIS Expressをプロジェクトのディレクトリ指定して起動しておいて、ビューは変更した都度リロード、ロジック変えたらビルドして確認」なんて気楽な開発が出来なくなってかなり面倒……
2021/12/05(日) 19:37:11.95ID:nyTfINJm0
実行時にコンパイルしてくれる設定はあったはず
2021/12/05(日) 20:22:19.92ID:c+AK18I70
ほっとりろーど
2021/12/06(月) 10:28:43.40ID:88ozVNfm0
>>879-880
ああ、なるほど。ASP.net MVC 3.1(というか、VisualStudio2019や2022)では、【デバッグしながら】ソースをいじって、それをすぐにブラウザで見れるんだ。
chtmlは今までも出来たけど、コードビハインド(と今は呼ばないかもしれないが)の変更も可能になってて、それを反映する「コード変更を適用」なんてボタンもVSに追加されてるんですな…。
これなら確かにわざわざIIS Expressを別に起動する手間は必要ありませんね。
例外が出た時にコマンドプロンプトからも確認できなくなったのがちょっと不便になったが、これも仕事で書くまともなコードならNLogなりを入れている筈だし。

アドバイスに感謝。いやはや、便利になったモノですなぁ…
882デフォルトの名無しさん (ワッチョイ 56bd-QDcv)
垢版 |
2021/12/06(月) 20:25:20.35ID:kcw1evd50
文字と数値が入り混じるリストのソート掛けが分かりません。

[0]丸/B/30/40/B/60/0
[1]丸/B/70/20/B/20/0
[2]丸/B/30/5/B/60/0
[3]角/B/70/20/B/20/40
[4]丸/B/30/40/B/60/0
[5]角/B/20/20/B/20/100

1番左の丸、角等の文字でまとめ、
[0]の40の位置の数値を昇順、
[0]の30位置の数値の昇順に並び替えたいです。
丸角の順番はまとまってれば良くて、数値は小数点ありです。

どなたかコードを、教えて頂きたいです。
2021/12/06(月) 20:41:57.32ID:Qbq2EdCDa
>>882
そのリストの要素(例えば「丸/B/30/40/B/60/0」)
は文字列なんだよね?

だったら要はスラッシュで区切られた文字列の中から
n番目の要素を取り出すメソッドが書ければ目的は達成できるのと違うの?
2021/12/06(月) 23:26:59.64ID:qid4C38qM
>>882
普通は何らかの自作クラスにその文字列をパースした値を入れてソートする
2021/12/06(月) 23:30:33.29ID:qid4C38qM
まずね

> 文字と数値が入り混じるリストのソート掛けが分かりません。

これはリストじゃないね
ただの文字列だろ

自分の好きなようにパースしたらいい
2021/12/07(火) 20:03:11.57ID:hXBXLlEy0
new object[][] { new object[] { "丸", "B", 30, 40, "B", 60, 0 } }
とかだったりね。

まあ 894 の言う通りだと思う。
data.OrderBy( a => (string)a[0] ).OrderBy( a => (int)a[3] ).OrderBy( a => (int)a[2] ) とかでも出来るかもしれないけど。
2021/12/07(火) 21:47:17.88ID:S2DijEtm0
>>882
result = list.OrderBy(x =>GetValue1(x))
.ThenBy(x => GetValue2(x))
.ThenBy(x =>GeValue3(x));

でGetValueメソッドの実装をするのが初心者でもわかりやすい
GetValueを共通化するとかはお好みで
2021/12/07(火) 21:47:55.35ID:cdrKb2eoa
この程度の話だったらどんな設計でも問題ないと思うけど、
>>882の人はそういう設計の問題で躓いているんじゃないでしょ。

恐らくいわゆる「分割統治」ができない人なんだと思う。
普通のプログラマなら当たり前のように自然に

デリミタで区切られた文字列の3番目の要素でソートしたい ⇒
(1) 3番目の要素を抜き出す
(2) 文字列を実数に変換
(3) 変換し数値を使ってソート

という風に大きな問題を小さな問題に分割して考えるけど、できない人にはこれができない
2021/12/07(火) 22:20:44.44ID:Is+OlLjN0
イコールだったら次の項目の比較をするって部分ができねぇのと違う?
2021/12/07(火) 22:21:56.47ID:Is+OlLjN0
つまりソートの優先順位の話をしてるのではないか?と
2021/12/07(火) 23:54:19.12ID:C4n8qnlb0
分割統治って今日本が米帝にやられてる統治法かよ
2021/12/08(水) 00:07:29.07ID:JmKuL7Fea
新しくbyte[]配列を定義してコピーせずに、byte[]を文字列に直すのはどうしたらいいのでしょう?

byte[] data = new byte[] { 0x30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };  //末尾にnullがたくさんあるデータ
string text = Encoding.ASCII.GetString(data);
//string text = Encoding.ASCII.GetString((byte*)data,2); //こうしたいけどキャストできずエラー
Console.WriteLine(text); //「0???????????」が出力される
2021/12/08(水) 00:19:57.85ID:8icXIUsNd
>>892
そんなことはできない
そのポインタを引数に取るGetStringのオーバーロードも結局コピーする
Stringのコンストラクタにもポインタを引数に取るのがあるけどそれもコピーする
2021/12/08(水) 00:20:50.66ID:wMA9/Vnj0
質問内容がよく分からんが欲しいのはEncodingクラスの
GetString(byte[], int, int)
オーバーロードか?
length引数はその例の場合1にしないとtextに\0文字が入っちゃうぞ
2021/12/08(水) 00:23:08.99ID:8icXIUsNd
ああ文字列化のときにコピーが走るのはよくて、前処理としてbyte配列からbyte配列にコピーするのは嫌ってことか?
GetStringに範囲を指定できるオーバーロードがあるだろ
2021/12/08(水) 00:26:17.98ID:f3DwDnQi0
Encoding.ASCII.GetString(data, 0, 1);
じゃダメなの?
2021/12/08(水) 00:26:56.95ID:JmKuL7Fea
>>894
それ探してました。完全に見落として存在気づいてませんでした
ソース見てたら今見つけた・・・
https://source.dot.net/#System.Private.CoreLib/Encoding.cs,233647d04fbec0c0
2021/12/08(水) 00:32:14.59ID:f3DwDnQi0
>>897
まず公式ドキュメント見る癖つけた方がいいぜ
https://docs.microsoft.com/ja-jp/dotnet/api/system.text.asciiencoding.getstring?view=net-6.0
2021/12/08(水) 00:37:02.39ID:e703d0nc0
Spanを引数にとるGetStringを早く実装しろよ、MS
2021/12/08(水) 00:44:28.31ID:b+i+HzV1a
もう解決済みみたいだしもっといい方法がたぶんあると思うけど
いちいち手動で長さを指定せずにC文字列を文字列に変換したいってことならこれで出来た
var data = new byte[] { 0x30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
var sb = new StringBuilder();
sb.Append(Encoding.ASCII.GetChars(data));
var text = sb.ToString();
2021/12/08(水) 01:08:03.30ID:f3DwDnQi0
>>899
自分で拡張メソッド作れば
2021/12/08(水) 09:34:35.47ID:lj53vMC40
あんまり行儀は良くないけど1行で出来るしbyte[]じゃなくてSpanで受け取るときって往々にして変換先もReadOnlySpan<char>で済ませたいときだから標準で必要だとは思わないな
Span<char> stack = stackalloc char[u8.Length];
string str = stack.Slice(0, Encoding.UTF8.GetChars(u8, stack)).ToString();
2021/12/09(木) 18:07:45.75ID:Oxvlsd/n0
VC#からVC++へは移植はしやすいですか?
904デフォルトの名無しさん (ワッチョイ 0a8e-9fbA)
垢版 |
2021/12/09(木) 18:12:01.88ID:T9HnMcRs0
>>903
その質問をここでするくらいの人にはどちらにしろ無理だな
2021/12/09(木) 18:27:06.11ID:vdjQHUNbD
全然
レイヤの違いが極端なので文法が少し似てる以外完全に別物
906デフォルトの名無しさん (アウアウウー Saab-wFmK)
垢版 |
2021/12/09(木) 19:40:17.12ID:RDoYY/RSa
久しぶりにc#書くんだけど今VSって2022が最新と思っていいのかな?2019のほうがいい?
2021/12/09(木) 19:55:36.13ID:Zn36cQFS0
2022が最新
2021/12/09(木) 21:11:55.71ID://kyAdWZ0
NFTアートとNFTゲームとGameFiとブロックチェーンゲームに
提供する側・作る側として参入しよう。
(むりなら参加する側でもいい)
DAOとPlay-to-Earn(遊んで稼ぐ)が世界の未来になる
特にNFTアートとNFTゲームとGameFiは今なら先行者利益取れるぞ
NFTアートとNFTゲームとGameFiはこれから1000倍規模の市場になる
2021/12/10(金) 11:09:05.25ID:p5UXnudI0
dotnet.microsoft.com/ja-jp/

として日本語版サイトが立ち上がったらしいよ
と言うどうでもいいっちゃあどうでもいいニュース
2021/12/10(金) 12:01:26.74ID:t+k8TGkX0
今はユニバーサルと.net frameworkってどっちで作ればいいのでしょうか?
2021/12/10(金) 12:13:42.11ID:CU4VjXTFM
お好みでどうぞ
どちらも開発終了しているプロジェクトなので今後の展開はない
2021/12/10(金) 12:29:27.61ID:p5UXnudI0
でもVS2030になっても.net frameworkの方はサポートされてる気がする
2021/12/10(金) 14:58:40.53ID:dSCEiiiBM
2030年には.NET15が出てるのか
もう誰も残ってなさそう
2021/12/10(金) 16:39:51.50ID:JcEd7rWX0
まあそのうち「.NET」って名前も捨てるやろな
どこが「NET」やねんってツッコミもされそうな時代になってきたし
2021/12/10(金) 16:53:42.58ID:uofk+Uw9a
>>914
まあそれは最初からそうなんだけどね

Windows XPが出た時に.NET Passportっていう認証サービスも
確か一緒に登場したんだけど、たぶんそれと同じ.NETだよね。

ちなみにこの.NET Passport、XP SP2の頃には早々消滅してた記憶があるw
2021/12/10(金) 18:49:29.25ID:ABPPVcY4D
GROSSじゃないからNETなのかもしれないぞ
2021/12/10(金) 18:50:30.18ID:ABPPVcY4D
>>915
MSアカウントって名前で現役バリバリではあるな
2021/12/10(金) 19:12:13.51ID:t+k8TGkX0
いまからやるなら.net coreに乗り換えればいいのでしょうか?
2021/12/10(金) 19:20:30.02ID:jrZg0jJ80
.NET Coreは開発終了
今からやるなら.NET 6

変遷
.NET Framework

.NET Core

.NET 6 (2021/11リリース)

今後
.NET 7 (2022/11予定)
.NET 8 (2023/11予定)
2021/12/10(金) 19:32:59.39ID:uofk+Uw9a
>>917
だからブランド名の話ね

というか、正直当時も今もあんまり感心ないんで勘違いしてるかもしれんが、
..NET Passportって今のGoogleやツイッターやYahooのIDみたいに
サードパーティーにも認証サービスを提供することを想定してたはずだよね確か。

今のMSアカウントはMSローカルのIDとしてしか使われてない気が
2021/12/10(金) 19:58:02.05ID:AcbrbrJv0
>>920
OAuth2やOpenId Connectに対応してるんじゃないの?
2021/12/10(金) 20:05:07.93ID:17TQZTN0M
そう言った用途ならAzureADアカウントだと思う
2021/12/11(土) 01:27:27.28ID:nQ2KwBoK0
.net standardって謳ってたのは何だったの?あれと今の.net xの関係性がわからん
Microsoftの言ったもん勝ちに振り回されてる気がしてならん
2021/12/11(土) 02:09:45.97ID:Ic21T4cQd
>>923
.NET Standardはとっくに放棄されて死んだから全く気にしなくていいよ
むしろトラブルメーカーだから積極的に捨てたほうがいい
2021/12/11(土) 02:21:32.22ID:lM+tc9bnM
.NET Standardは他の様なフレームワークそのものではなくてフレームワーク構成のプロファイルなので位置づけが違う
.NET Frameworkと.NET Coreが共存していた過渡期の仕様なので.NET 5で統合された後はその役目を終えた
2021/12/11(土) 02:28:18.36ID:dZyCc/6DM
別に統合されてはいないでしょ
互換性の乏しい別物だよ
2021/12/11(土) 02:42:15.96ID:rKF6rMeBM
.NET Framework(Windows用)と.NET Core(Linuxメインのマルチプラットフォーム用)
の統合で作られたのが.NET 5
(CoreベースにFrameworkを吸収した形式)
更にXamarin(モバイル用)を統合して. NET 6というのが大筋の流れ
ただし現状はフレームワーク本体の統合に対してUIフレームワークの進捗が遅れているのでモバイル用はまだ完全に統合できていない
928デフォルトの名無しさん (ワッチョイ 47e6-JWjg)
垢版 |
2021/12/11(土) 08:21:58.67ID:GfYv21Eg0
Standardで書けばFrameworkでもCoreでも動くのが売りじゃなかったっけ?

破棄されたということは.NET6では動かなくなったの?
2021/12/11(土) 08:55:50.76ID:QCKRPgtgM
4年前の記事
https://atmarkit.itmedia.co.jp/ait/articles/1707/28/news033.html

要するに3種類のフレームワークのクラスライブラリを相互利用できる様にPCL(プロファイル)を置き換えるものとして計画されていた

その後クラスライブラリを含むフレームワークそのものを統合する方向に方針転換したので今となってはもはや何の意味もない
2021/12/11(土) 09:15:21.67ID:oNJJhVSgr
もうわけわからん
これがマイクロソフトのゴミ戦略
みんな捨てるわけだ
2021/12/11(土) 09:47:01.41ID:E/VsNyVn0
.NET 5が出たからといって世の中からFrameworkやCoreがすぐに消え去るわけじゃないし、
少なくとも4.8のサポートが切れる2030年までは.NET Standardの意味はあるんじゃないの。
2021/12/11(土) 10:01:45.69ID:5LGmTTMuM
開発中止されたものを無理に利用しても益はないよ
レガシー系を使うなら素直に元のライブラリ使った方が楽
おそらく手作業であちこち設定弄らないとまともに使えないと思う
2021/12/11(土) 10:37:35.18ID:sCRlvrJq0
.NET Frameworkから.NET Coreへの移行準備にはちょうど良かったと思うけどな
2021/12/11(土) 11:13:46.06ID:e3Orr6P80
こちらの足元を整える必要があると認識できた

あまり込み入ったことをしすぎたり、
マイナーなライブラリを使ってると、移行もつらくなる

ヘビーな業務アプリとかはなるべく言語の素に近い実装がいいと気付けた
少なくともMS付近のテクノロジーでは
2021/12/11(土) 11:45:13.64ID:s4WaAbfG0
まだWinformsやWPFは.netに移行できないが
UIから呼び出すクラスライブラリは.netで作りたいという向きは多いのでは?
2021/12/11(土) 12:18:05.68ID:Ic21T4cQd
>>935
UI等に依存しない純粋なStandardのライブラリとしてロジックを切り出せる程度の能力のあるチームならとっくに本体を移行してるだろうし、
そもそも今時まだWebに行けなくてデスクトップアプリやってる時点でアレ
2021/12/11(土) 12:32:41.52ID:E/VsNyVn0
>UI等に依存しない純粋なStandardのライブラリとしてロジックを切り出せる程度の能力のある

そんな大層な能力か?
2021/12/11(土) 12:34:25.02ID:s4WaAbfG0
普通に市販コンポーネントの対応状況だとかVSの機能で未実装とかさまざまに.netでのデスクトップアプリ作成を妨げる要因はあるでしょ
しかもどんなアプリにおいてもデスクトップよりWebの方が適しているなんてのも乱暴すぎて幼稚
939デフォルトの名無しさん (ワッチョイ 7f8e-sCeO)
垢版 |
2021/12/11(土) 12:49:33.02ID:w9jtQY7u0
>>936
ブラウザやVisualStudio完全否定かよ
2021/12/11(土) 13:38:03.61ID:Gd3J+jh3M
既存プロジェクトの
.NET Framework + Winforms / WPF
は無理に移行せず現状維持
新規プロジェクトは
.NET 6 + WinUI3 / MAUI(開発中)
に移行というのがMSの方針
2021/12/11(土) 13:41:21.61ID:Gd3J+jh3M
https://docs.microsoft.com/ja-jp/windows/apps/winui/
2021/12/11(土) 13:51:30.23ID:E/VsNyVn0
で、その両方から使ってもらいたいライブラリは.NET Standard 2.0 推奨
https://docs.microsoft.com/ja-jp/dotnet/standard/net-standard#net-5-and-net-standard
2021/12/11(土) 13:57:01.91ID:dRwXIFxP0
何だか苦し紛れの開き直りのようにも見える
https://docs.microsoft.com/ja-jp/dotnet/standard/net-standard#net-standard-problems
https://docs.microsoft.com/ja-jp/dotnet/standard/net-standard#net-standard-not-deprecated
2021/12/11(土) 14:06:47.47ID:s1sgTwO/a
>>939
web系技術の信奉者は現実をありのままに直視できないドリーマーが多いw
これは最近始まった話じゃなくてWindows 98の頃からそうw

Java界隈も昔はそうだったけど流石に10年ぐらい前に消えた。
Web界隈は相変わらず。

彼ら、もう15年ぐらい前からずっと「すべてはブラウザ上で実行されるようになって
デスクトップアプリは駆逐される」と言い続けているw
もう立派なカルトだねw
2021/12/11(土) 14:07:48.81ID:dRwXIFxP0
結局.NET Frameworkの延命手段として完全に手放すわけにもいかず止むを得ず玉虫色の対応といった感じかな
946デフォルトの名無しさん (ワッチョイ 47e6-JWjg)
垢版 |
2021/12/11(土) 14:11:12.85ID:GfYv21Eg0
>>944
15年前のWEBアプリって駆逐されてね?
2021/12/11(土) 14:17:14.03ID:34Vp3rtRa
集金とAI用の情報収集手段としてはWEBアプリ最強だからな
使い勝手は・・・だけど
2021/12/11(土) 14:17:41.07ID:E/VsNyVn0
>>945
逆にNET Frameworkから.NET Coreへの移行を早く進めてもらいたいからこそのStandardだろう。>>933が言う通り
2021/12/11(土) 14:23:48.53ID:dRwXIFxP0
MSが.NET Coreへの移行を焦っていたのはUWPをゴリ押ししてたからだと思うけどUWP諦めたので今さら必要あるの?
2021/12/11(土) 14:29:36.00ID:cVwF6wXc0
>>944
いつまで経ってもデスクトップアプリが駆逐される気配が無いんだが?
2021/12/11(土) 16:17:14.49ID:HJUnekpir
乱立してオワコンだろ
2021/12/11(土) 16:28:55.24ID:nQ2KwBoK0
デスクトップアプリと違ってwebformの置き換えはほぼ書き直しだからしんどそうですね
2021/12/11(土) 16:30:36.30ID:XRkKLs6o0
>>952
超しんどい。うちは塩漬け状態。いつか来るその日に震えてる
2021/12/11(土) 17:10:45.23ID:B94G/4wb0
.net5はWindows11にプリインしてくれなかったのが面倒なんだよなあ
2021/12/11(土) 17:25:46.40ID:UhQJFL400
>>954
大規模アプデのタイミングで強制インストールにして欲しいわ
2021/12/11(土) 18:23:21.96ID:NXk2eYATM
>>955
.NET5のサポート期限は来年4月
LTSである6ですら2024年に期限切れ
こんなもんWindowsにプリインなんて常識的に考えて不可能だ
Windowsのアップグレードで勝手にメジャーバージョン上がったりしたら3年毎に阿鼻叫喚だろうな
2021/12/11(土) 19:23:02.48ID:vkmjnfUQ0
じゃあやっぱ.NET Frameworkで作るのが正解じゃん
2021/12/11(土) 19:25:08.73ID:+qU2bOyG0
.net5とはなんだったのか?
2021/12/11(土) 19:33:02.18ID:fnzeFxcUM
以前.net framewarkのプロジェクトを簡単に.Net5に移行できるのかと思ったら無理だった
だったらソースをコピペしてと思ったらライブラリに互換性がないのが結構ある
シグネチャぐらいそろえてくれよと思ったがセキュリティ関連だからかなあ…
2021/12/11(土) 21:16:57.48ID:afvEZyDkr
MSこの体たらく
迷惑しかかけない
開発力もない
2021/12/11(土) 21:25:35.26ID:7kMFlVCP0
log4jよりマシ
962デフォルトの名無しさん (ワッチョイ 675f-yjVA)
垢版 |
2021/12/12(日) 00:06:29.93ID:gqLDOxIo0
移行するなら.NET 6でしょ
なんで今.NET 5なの
2021/12/12(日) 01:06:08.00ID:zlKDeT/Ed
>>957
Core系の.NETでは実行環境に.NETをインストールする必要がないんだよ
.NETランタイムをアプリ自体に同梱できるから、ユーザーにとっては全く.NETを意識する必要がなく、環境も汚さない
まあ.NET Frameworkの運用に慣れてる客だったりすると、.NETセキュリティパッチどうやって当てるのとか言われた瞬間に詰むけどなw
2021/12/12(日) 02:16:04.14ID:oOZL8nTv0
.net core系の一つのアプリの容量が数十MBになるのはそれが理由?
2021/12/12(日) 03:23:05.09ID:kKgLRxlD0
-p:PublishSingleFile=true
--self-contained:false
2021/12/12(日) 04:21:14.46ID:SAdcd1JBr
どうせまたすぐに新しい.Netなんちゃらが出てくる
2021/12/12(日) 04:45:12.50ID:JkMSsZht0
ttps://ideone.com/oOrXBQ
現在プログラム練習中で、”なつ”と打ったら”今は夏です”と表示されるものを作っています。
「現在のコンテキストに”なつ”という名前は存在しません」
と表示されるのですがどのようにしたらいいでしょうか
2021/12/12(日) 05:16:33.30ID:7TMy9Xr70
勉強してください
2021/12/12(日) 08:00:09.89ID:DIJdvbEO0
>>967
Javaはスレ違い
2021/12/12(日) 09:05:05.56ID:TEvUYcDXM
>>967
a == なつ
じゃなくて
a == "なつ"
2021/12/12(日) 09:07:14.52ID:yVQuvGNg0
>>967
“なつ”
文字列にする
2021/12/12(日) 09:37:33.27ID:JkMSsZht0
""で挟んだら出来ました、感謝します
2021/12/12(日) 09:41:41.91ID:PVSdttDfd
マジレスしてよかったのか・・・お題かと思ったわ
974デフォルトの名無しさん (ワッチョイ 47e6-JWjg)
垢版 |
2021/12/12(日) 12:26:56.12ID:Zq5QM1L+0
オマジナイで var なつ="なつ";
2021/12/12(日) 15:38:43.36ID:e+8pc4S6M
var なつ="ふゆ";
976878 (ワッチョイ df89-p36F)
垢版 |
2021/12/12(日) 15:58:16.12ID:rM2H0Wnf0
失敬、別件で少々質問。
.net core 5/6で、Windowsサービスって作れるん?
ググると出来そうな感じなんだけど、Visual Studio 2019ではテンプレートが.net frameworkしか出てこない…
2021/12/12(日) 16:00:52.33ID:e+8pc4S6M
BackgroundService を使用して Windows サービスを作成する
[アーティクル]
2021/12/10
2021/12/12(日) 23:30:51.09ID:rM2H0Wnf0
>>977
あ、なるほど。
「WorkerService」で出てくるんですな>テンプレート
アドバイス感謝
2021/12/13(月) 11:52:43.92ID:wewtKStn0
C#の正規表現でマッチするのはRegex.IsMatchで真偽を得られますが
マッチした位置のstartとendの文字位置を取得する方法ないでしょうか?
980デフォルトの名無しさん (ラクッペペ MM8f-JWjg)
垢版 |
2021/12/13(月) 12:30:15.07ID:i+9asInOM
Regex.Match
981980 (ラクッペペ MM8f-JWjg)
垢版 |
2021/12/13(月) 13:32:27.99ID:i+9asInOM
次スレお願いします
>>985
2021/12/13(月) 18:14:55.88ID:7pnzZ4JB0
こんな感じで位置情報は取れるんじゃね
start=match.Index
end=start+match.Length
2021/12/13(月) 19:41:31.37ID:kNebVXhJ0
ありがとうございます
2021/12/13(月) 21:08:47.76ID:7y8WpNWV0
List<Class>があるとして、List内のClass.nameに指定の文字列があるかを取得したいのですが
自作クラス内の要素でcontaintsってできませんか?
foreachで比較するのが正解?
2021/12/13(月) 21:15:06.25ID:In5eq4Wi0
>>984
.Where使え
2021/12/13(月) 21:17:21.47ID:7ZcyUS400
>>984
var list = new List<Class>();
var a = list.Any( x => x.name.Containts( value ) );
とか?
該当する要素が必要ならAny()をWhere()に
2021/12/13(月) 21:27:25.78ID:7y8WpNWV0
>>985-986
ありがとうございます!
どうググっていいのかわからなかったので助かりました……!
2021/12/13(月) 22:55:24.29ID:dhjmiKBp0
次スレ立てた
https://mevius.5ch.net/test/read.cgi/tech/1639403601/
空行1行削ってhttps://source.dot.net/を追加
2021/12/14(火) 06:58:31.68ID:du0GZnIr0
ttps://dotnetfiddle.net/XLqfZT
ランダムでAかBかCを表示するプログラムを作りたいのですが、これくらいしか作れません
何かもっと簡単な方法があればご教授ください
2021/12/14(火) 07:45:59.00ID:qzQ3tQASr
num - 1 を 'A' に足すとかかな。
2021/12/14(火) 09:17:16.08ID:vmKXmndG0
よくある方法としてはテーブルを作っておくとか
var dic = new[] { "A", "B", "C" };
Console.WriteLine(dic[rnd.Next(0, dic.Length)]);
2021/12/14(火) 09:57:06.80ID:e0HER7LA0
>>990>>991を合体させるのがよさそう
char a = Convert.ToChar('A' + rnd.Next(1,3));
Console.WriteLine("これは{0}です",a);
2021/12/14(火) 10:11:15.99ID:5DwVjF+M0
実際にA, B, Cを返すのなら>>990のやり方が使えるけど、本当に欲しいのが大吉、中吉、小吉、凶みたいな感じだと
>>991のになるね
2021/12/14(火) 13:46:50.71ID:du0GZnIr0
ありがとうございます、やってみます
2021/12/14(火) 13:58:59.60ID:9+ODmT2J0
0〜9までの数値文字を作るときにも応用効くから990みたいな発想は覚えておいて損はない
'0' + rand.Next(0, 10)

'A'の内部は0x0041で'B'の内部は0x0042だから'A'に1を足せばBになるという仕組み('0'~'9'も同様に連続してる)
2021/12/14(火) 14:26:45.80ID:YieXxPy2a
netcore Blazorでwebアプリ作成を勉強中なのですが、ボタンを押すとExcelファイルを開く機能を作ろうとした際にエラーが出て以下の記事を見つけました

https://social.msdn.microsoft.com/Forums/ja-JP/052366e2-fbb4-4426-8a72-f25d99e67026/c12391excel12434258052031612377124272723133021123911249912523124?forum=csharpgeneralja

この記事内で「もし Excel アプリを立ち上げてそれにファイルを表示しユーザーが操作するというようなことでしたら、それは Web アプリでは無理です。」とコメントがあります

webアプリの知識が浅いので初歩的な質問だと思うのですが、これはどういう理由からなのでしょうか?
2021/12/14(火) 14:37:28.89ID:70QYvgE2a
エラーの理由と解決方法は一番下の人の投稿の通り、
WEBアプリでEXCELをっていうのは、エクセルのUIをweb経由でクライアントに送信するのが難しいから

COMでexcelを起動してファイル操作をすること自体はできるけど、それはUIがないからね
COM経由でやるならUIは全部自分で作らないといけないないし、
COMを使わずにエクセルの画面そのものでやるならリモートデスクトップのエクセル版を全部自分で作らないといけない
998デフォルトの名無しさん (ワッチョイ 7f8e-sCeO)
垢版 |
2021/12/14(火) 14:49:24.22ID:XfsZssVB0
>>996
プログラムするのはやめとけ
999デフォルトの名無しさん (ワッチョイ 7f2a-PFkU)
垢版 |
2021/12/14(火) 18:33:30.49ID:LorwhalJ0

Slot
🍜🎴👻
💣🎰🎴
🎰😜🍜
(LA: 1.86, 1.92, 1.82)
1000デフォルトの名無しさん (ワッチョイ 7f2a-PFkU)
垢版 |
2021/12/14(火) 18:33:34.98ID:LorwhalJ0

Slot
🌸🎴🌸
💰💰👻
🍒😜🎴
Win!! 4 pts.(LA: 2.11, 1.98, 1.84)
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
SLOT Results
🎰🎰🎰 Excellent!! 0
🎴🎴🎴 Gratz!! 0
🌸🌸🌸 OPPAI Ban!! 0
💣💣💣 Backingum!! 0
Win!! 1
Points 4 pts.

life time: 110日 22時間 49分 19秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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