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

■ このスレッドは過去ログ倉庫に格納されています
2022/11/25(金) 13:16:08.91ID:HZEumDr50
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part156
https://mevius.5ch.net/test/read.cgi/tech/1663479569/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
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/
https://source.dot.net/
・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
2023/01/30(月) 23:33:12.81ID:EKczJlFVa
jsonに型情報なんか入ってないからプログラマが型を教えてやるしかねーぞ
入れられるならプロパティとして入れとけ
2023/01/30(月) 23:41:03.69ID:4W3kbClF0
うーむ…中々難しいのですね。
辞書に色々ごちゃごちゃにぶち込んで一発でシリアル化、一発で逆シリアル化とはいかないですか。
2023/01/30(月) 23:50:54.82ID:EKczJlFVa
プロがやれば何とかなると思うから依頼してみなよ
さすがに詳しいことをここで聞いたり説明したりするのはめんどいわ
2023/01/30(月) 23:52:57.23ID:4W3kbClF0
確かになんとかはなるかもしれませんね…
簡単にはいかないのは確か、というところでしょうか。
JsonSerializerが参照情報だけではなく型情報もメタデータとして保持できればよかったのですがね。
2023/01/30(月) 23:58:17.04ID:IhW3z+yo0
>>367
TypeNameHandling.All
しかしセキュリティリスクがあるからおススメできない
2023/01/31(火) 09:16:17.88ID:d4xiAPDr0
XMLでよければXmlSerializerがあるがな。
2023/01/31(火) 19:05:24.58ID:t9l1A9G+0
jsonのと比べてXmlSerializerだと何か良いことがあるのかね
2023/01/31(火) 21:43:56.67ID:d4xiAPDr0
>>372
型情報を含んでる
2023/01/31(火) 21:48:53.87ID:tyybi/5mp
型情報あっても、その型を解釈出来なけりゃ意味が無いからなぁ
送り手と受け手で同じ型宣言つかわにゃ
375デフォルトの名無しさん (アウアウウー Sa47-MG55)
垢版 |
2023/01/31(火) 22:18:53.12ID:eUQUkrMna
おなじ宣言つかえばいいのでは
2023/01/31(火) 22:25:35.04ID:tyybi/5mp
作成者が同じとも限らないし、言語が違うとかもあるし
限定的な使い道しか無いんだよなぁ
2023/01/31(火) 22:37:59.59ID:JUpN+VeK0
何がしたいんだ?
自分も使えないデータを知らない人に渡して活用してもらうのか?
2023/01/31(火) 22:39:07.69ID:lNQXIXaf0
そもそもどういう理由でJSONを選んだのか
シリアライザも色々あるから、それに適さないデータを無理に扱おうとしても苦労するだけよ
2023/02/01(水) 01:00:31.32ID:gXlE0Qft0
用途→状態保存
なぜ→特になし
2023/02/01(水) 04:01:10.47ID:RyGmTTdX0
>>367
辞書に入れる要素のクラス自身をdynamicにするんじゃなくて
そのクラス内のプロパティにdynamicから継承したクラスをズラズラ並べたら?
泥臭いけど、やりたい事は実現できる
2023/02/01(水) 07:07:59.79ID:OQq7+g560
https://learn.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/serialization/

だから他のクラスに読み出す必要性は?
2023/02/01(水) 11:28:10.11ID:BH4poKX+a
Marshal だろ。たいていの言語にある。
でも、言語のバージョンが異なると互換性がない

dRuby みたいな分散・リモートオブジェクト。
送信先で、オブジェクトを復元できる機能

ただし、プロセスID など、各システムで固有のものは送れない・復元できない

例えば、システムA のプロセスID・100 を送っても、
システムB の100に出来ない
2023/02/01(水) 11:59:27.64ID:UTKch+wba
そもそもクラス名を指定すれば復元できるんだからクラスを保存するのは普通
ただのデータ構造
2023/02/01(水) 14:10:05.95ID:ebRzTgdK0
async/awaitが出た頃に「BackGroundWorkerは時代送れだから使うな」
って聞いた気がするけども、ググると新しい記事でも使っています。
用途次第なのでしょうが、BackGroundWorkerも使って良いのでしょうか?
2023/02/01(水) 15:00:43.93ID:v1HsWaA1d
>>384
廃止になる情報は見つからないね
2023/02/01(水) 15:09:07.40ID:Ke8/ro290
古いframeworkのバージョンしか使えない場合とか
2023/02/01(水) 19:04:34.85ID:dDom2t/30
async汚染が気になって使えない
2023/02/01(水) 19:55:41.40ID:maza5pHhp
プロパティに非同期呼び出しがあって詰んだ思い出
2023/02/02(木) 06:15:09.17ID:upKEKEWBa
>>384
性能は同じだから、どっちを使っても良いと思う
2023/02/03(金) 17:52:58.42ID:Dixtr4kT0
win32apiのTextOut関数を使ってコントロールへ文字を表示したいのですが
マウスをドラッグして、そのコントロールを含むフォームのサイズを変更したときに
タイミングによっては例外が発生してしまいます、どのように修正するのが正当なやり方でしょうか?
void MyTextOut(){
TextOut(......)
}

protected override void OnPaint(){
MyTextOut()
}
2023/02/03(金) 21:39:19.06ID:Ug5oxsRH0
まずどんな例外が発生しているのかそういう情報が無いと誰も答えられないような
2023/02/03(金) 21:48:19.59ID:0nuP02J20
そもそも、なんでTextOutなんて使ってんの
2023/02/03(金) 22:00:34.75ID:Ug5oxsRH0
確かにw
DrawString()とかで良さそうな
https://dobon.net/vb/dotnet/graphics/drawstring.html
2023/02/03(金) 22:06:21.54ID:0nuP02J20
C#は、基本設計として危険な生のハンドル操作をする必要がない作りになっている
ろくにエラー処理もしない(出来ない)奴が直接Win32APIを叩くのがそもそも間違ってる
2023/02/03(金) 22:17:15.42ID:j/Zv+95r0
>>390
質問する際は>>391の言う通りどんな例外かを示さないとエスパー呼んでくるしかない
あとせっかくコードを出すのなら再現する最低限のコード書けば答える側もわかりやすいし、最低限のコード作って確認したら自分で解決もしやすい
個人的にはどうでもいいだろうけど、protected overrideなのにbase呼んでないのが気になった
https://learn.microsoft.com/ja-jp/dotnet/desktop/winforms/controls/overriding-the-onpaint-method?view=netframeworkdesktop-4.8
2023/02/04(土) 01:30:11.94ID:Oed2Ku7T0
LINEのc#のオープンチャットがあったので入ってみたらスマホのめちゃくちゃ狭い画面でソース貼ってやりとりしてて笑った
正気か?
2023/02/04(土) 02:31:03.22ID:TaDFHfgY0
授業で習ってますてな感じの学生が使ってるんだろ
LINEの時点でプログラマは一人もいなそう
2023/02/04(土) 07:17:12.90ID:Av2vQos/0
知らんのか
今の若い子はスマホしか知らない世代と言われ開発もスマホでするんだよ
399デフォルトの名無しさん (ワッチョイ 4f5f-F1up)
垢版 |
2023/02/04(土) 18:23:13.70ID:xi2o8ewX0
10インチタブレット+無線キーボードならまぁ…
いやまともなIDEないからやっぱダメだな
2023/02/04(土) 19:28:59.33ID:yf/xw4jH0
いやあむりっす
2023/02/04(土) 19:33:52.48ID:3xAEA7yN0
LINEってWindows版もなかったっけ?
2023/02/04(土) 19:35:24.17ID:9MyJHPNb0
国民的アプリLINE、韓国産!w
2023/02/11(土) 22:26:36.72ID:2er8PNSW0
たまにはテンプレ案の話もしませんか?
とりあえずdocsはlearnに直して情報源に未確認飛行https://ufcpp.net/入れてほしい
2023/02/12(日) 07:58:30.10ID:1e5Tlcow0
.NET6使ってタイマースレッド内で作ったList<ListViewItem> ItemListの中身をスレッドからInvokeで
Invoke(new Action<ListViewItem[]>(MainListView.Items.AddRange), ItemList.ToArray())したのに
何故かParameter count mismatch言われるのがわけわからない……
ListViewItemの配列で引数合っとるやろがい……
2023/02/12(日) 10:12:49.64ID:LIxWC8qE0
(object)ItemList.ToAray()
でどう?
2023/02/12(日) 10:44:51.68ID:1e5Tlcow0
>>405
できた、サンクス
これ、ToArray()で返って来た配列の要素がそのまま可変長引数にばらけて入ってるってことだったんか……
2023/02/12(日) 14:35:35.41ID:O9dtb47zM
>>403
入れなくていいよ
そいつは自己紹介せずにC#でググれ(そしたら自分のサイトが出てくる)と言ってるらしいし
2023/02/12(日) 15:18:30.44ID:O9dtb47zM
それにC#の新機能でググってるのにそいつのサイトのドラフト案のころの情報につながったりする
そして実際の動作とは違ってる

誰が悪いとは言わないが個人の活動に乗っかってるだけだからな
正確に今ある機能を知りたい場合には向かないけどググったらそこにつながってしまう
2023/02/12(日) 15:36:45.09ID:FJkPIAh+r
ドラフト案を新機能として紹介してるなら向こうの手落ちだけども、そうでないならただの言いがかり
それに普段見てる範囲ではこの機能はこのバージョンからって各ページにしっかり書いてある方だと思うけどな
実際問題として初心者の情報源として重要なサイトであるのは間違いないでしょ
2023/02/12(日) 15:44:55.86ID:O9dtb47zM
どこが言いがかりだよ
チャンと日本語を読めよ
2023/02/12(日) 16:13:36.76ID:FJkPIAh+r
新機能で検索してるのにドラフト案の頃の情報がヒットするのはけしからん!ってことじゃないの?
2023/02/13(月) 09:33:35.41ID:lvNaLqRz0
張と日本語を読め?
413デフォルトの名無しさん (ワッチョイ ef54-0W4p)
垢版 |
2023/02/14(火) 05:36:16.67ID:nRH0oIdj0
新しい社内向けアプリ作る為のGUIを何で作るか迷っているのですが、今一番いい選択肢は何なのでしょうか?
個人的な感想としては、下記の状態です。
グラフとかチャートを多用するので、関連ライブラリが多様だとありがたいです。

WinForms = 楽 (一応 System.Windows.Forms.DataVisualization.Charting がある)
BlazorWebView = 少なくともWinFormsと同じくらい楽。むしろCSSとJS使える分だいぶ気楽。
MAUI = 使った感触では「まぁ時間をかけて慣れれば使えるかなぁ」という感じ。
WPF = 触ってもないのに何故かネガティブなイメージが強くて、全く検討していない。
2023/02/14(火) 08:39:42.78ID:Ot0uggwf0
>>412
張さん?
2023/02/14(火) 10:42:53.95ID:DdfzuiCAM
>>413
もう自分で答えでてるんじゃね
作りやすい物で作ればいい
2023/02/14(火) 10:47:02.41ID:DdfzuiCAM
社内で使用する前提だと、どの程度のスキルの奴が何人でつくって誰がメンテしていくかってのが基準になるから、自分が選定する立場ならそのへんで選ぶ
2023/02/14(火) 10:58:11.82ID:yaEcYKtV0
メンバー次第だよなぁ
C#じゃないけど、俺ならelectronにするわ
2023/02/14(火) 12:29:16.94ID:Xi4hjfkka
>>413
Chartが使えるWinformでいいと思う
2023/02/14(火) 18:07:04.64ID:YQfZZ7py0
WPFはコーディングだけでUIかけるから好きだけど、他のもそうなの?
2023/02/14(火) 18:09:57.75ID:pNVFHGjc0
WPFだな
2023/02/14(火) 20:28:46.03ID:/lgiAtc40
>>419
Windows3.1?
誰も望んでない方向へよく行ったと思う
2023/02/14(火) 20:39:14.68ID:4KQ468uNM
>>413
正直なところweb技術で作ったほうがいい
チャートがあると言うだけでもc#で作るのはお勧めしない
JSだとライブラリ選び放題
2023/02/14(火) 21:36:08.31ID:snyjWmK+0
System.Windows.Forms.DataVisualization.Charting使ってC# on powershell on バッチファイルで毎日グラフ吐かせてるけど一番シンプルいいと思う
野良のライブラもコンパイルも何も必要ないのと、やはり1ファイルで済むのがでかいと思ってる
2023/02/14(火) 21:51:39.49ID:4KQ468uNM
井の中の何とやらだろ
格が違いすぎる
2023/02/14(火) 22:14:49.56ID:R/4TdMMUr
君は人に噛み付いてばかりだな
2023/02/14(火) 23:03:10.09ID:4KQ468uNM
c#のチャートは止め絵
jsのチャートはUI有の動画

格が違いすぎる
試してみたほうがいいよ
2023/02/14(火) 23:18:18.45ID:zG3Q3kn70
まずデスクトップアプリかWEBアプリか、どっちが向くかの検討があって
言語はそれから考えるもんだと思うんだがな
2023/02/14(火) 23:21:04.30ID:w4RoV4Lpr
>>426
それより>>408>>410の続きはもういいの?
2023/02/15(水) 05:25:32.89ID:j7LcSp3e0
>>424
C#的に、シャープの中の蛙と言うべきだね。
2023/02/15(水) 08:49:42.39ID:STPisL/80
>>419
むしろコーディングだけでUIが描けないとかあるの?
VisualStudioのフォームデザイナも実体はただのコードだぞ?
2023/02/15(水) 09:46:49.53ID:JWhNqlzMp
>>429
いや、シャープマークはイゲタと言うし、井の中の蛙で合ってるだろ
井って文字すらシャープだね
2023/02/15(水) 11:53:25.33ID:RJgV2C9S0
>>430
実体はどうかと、実際に作成するときにどういう手段を取るかは別の話だと思うよ
2023/02/15(水) 11:55:29.11ID:gTZgWSvMp
意味不明なスクリプト言語を弄るよりは健全だよな?
2023/02/15(水) 12:55:04.29ID:STPisL/80
>>432
それはWPFも同じことだ
2023/02/15(水) 16:59:27.29ID:X4l7Qxg5d
いや、違うでしょ
.Designer.csは手書きする前提ではない
文字列の一括置換とか軽微な修正で直接編集するみたいなことはあるにしても
436デフォルトの名無しさん (アウアウウー Sa4f-lPs3)
垢版 |
2023/02/15(水) 18:10:38.43ID:jkiq+R9ea
質問失礼します
winformsの4.6.2で作られた既存のあるプロジェクトがあるのですが、これのターゲットフレームワークを4.6.1にしてリビルドした時の弊害ってどういうことがあるでしょうか
よろしくお願いいたします
2023/02/15(水) 19:20:21.36ID:BHKjsHQHp
やってみればわかる事
2023/02/16(木) 01:33:04.79ID:NlxEQAoG0
>>436
4.6.2のリリースノートを見るのと
書いてない内容もあるから
結局やってみないとわからない
439デフォルトの名無しさん (アウアウウー Sa4f-lPs3)
垢版 |
2023/02/16(木) 15:59:15.67ID:28flb+EUa
>>437
>>438
ありがとうございます
やってみてわかるというのは、ビルドエラーがかかるかどうかという意味でしょうか
もしくはデバッグしてプログラムの動作をみるということでしょうか
リリースノートみた感じだと4.6.1への変更はプログラムの挙動にはあまり影響しそうにない感じでしたが
2023/02/16(木) 16:50:31.83ID:8vxDZvLsd
>>439
いちいち人に聞かないと何もできない障害者かなにか?
2023/02/16(木) 17:17:52.63ID:qjdmH6MjM
msdnで聞けよ
2023/02/16(木) 18:31:38.45ID:IC0JpJBjd
ちょっと試してみるだけのことを実行しないで質問する奴ってなんなんだろう
2023/02/16(木) 19:12:59.78ID:31U/HR72p
全てを網羅してる人なんて居ないんだから
おま環で何が起こるかなんて、おまえにしか分からないんだぞ?
2023/02/16(木) 22:44:35.08ID:NlxEQAoG0
>>439
だから書いてないこともあるって
445デフォルトの名無しさん (アウアウウー Sa4f-lPs3)
垢版 |
2023/02/16(木) 23:43:26.11ID:yZuQjZuta
>>443
ありがとう。それは当然わかってるよ
自分で当然試してるし色々調べもしてる。大した手間じゃないしね。例外もとりあえず吐いてない
それを踏まえて、自分が知らない何かがあるんじゃないかと、お前ら先生にも聞いときたかったわけ
446デフォルトの名無しさん (アウアウウー Sa4f-lPs3)
垢版 |
2023/02/16(木) 23:44:54.26ID:yZuQjZuta
>>444
そういう例を聞きたかったんだが?
2023/02/16(木) 23:45:28.78ID:evLwjroi0
情報の後出しは嫌われるぞ
448デフォルトの名無しさん (アウアウウー Sa4f-lPs3)
垢版 |
2023/02/16(木) 23:48:16.70ID:yZuQjZuta
>>440
>>442
とりあえずなんにせよ質問に答えることすらできないガイジは黙ってろよ
449デフォルトの名無しさん (アウアウウー Sa4f-lPs3)
垢版 |
2023/02/16(木) 23:49:28.56ID:yZuQjZuta
>>447
あと出しって何?自分で調べるくらいして質問するのは当たり前だろ?
2023/02/17(金) 00:38:46.03ID:S3eBxXtF0
>>448
馬鹿な質問をする奴らはこういう馬鹿ばっか
2023/02/17(金) 03:44:43.57ID:SogOmYgg0
>>446
めっちゃ細かい内容は書いてない
把握はしてないけどね
2023/02/17(金) 06:49:51.24ID:rQuIVlVr0
MAUIってクロスプラットフォームしなくても良いことがあるんですか?
2023/02/17(金) 07:14:47.46ID:YltW73tNa
>>449
>>445 の内容を初めから書けよってことだぞ
2023/02/17(金) 07:58:14.01ID:N/wP7iE9r
質問する際は自分でおこなったことも書くんだぞ
それに問題があったり、新たに問題を生んでたりする

それを隠すのは、解決したいんじゃなくて単に相手を試したいだけ
そりゃ失礼だ
2023/02/17(金) 08:08:39.74ID:iGEcMirn0
>>452
ないぞ
2023/02/17(金) 08:37:40.48ID:vOG5r4bLr
>>451
めっちゃ細かい内容って例えばどんなレベルのこと?
2023/02/17(金) 08:47:10.09ID:PphMz/0G0
そもそもCSのスレでフレームワーク側の事訊くのもどうなんって感じするけど
まぁ.NETそのもののスレ無いか
2023/02/18(土) 10:10:58.75ID:4a504/qwa
C#について教えてください! https://smartlabo-hp.com/login-intermediate/ 上記ページを見てログインボタンを作成しました。 このページ内にあるcsvファイルの内容に加えて同csvファイルの[2]にログイン状態という列を足したいです。 ログインしてない状態では[2]は常に0、ログイン成功したら[2]に1が書かれるようにするにはどうすればいいのでしょうか? ご教授よろしくお願いします。
2023/02/18(土) 11:04:19.82ID:NwncLbr90
色々すげぇサイトだなぁ
とりあえずそのサイトを参考にするのはオススメしないです
2023/02/18(土) 11:08:18.91ID:4a504/qwa
>>459
csvを書き換える方法教えてください
2023/02/18(土) 11:36:39.81ID:dMNc5e60r
>>460
まず自分でググってみた?
2023/02/18(土) 11:51:35.31ID:KRa5JcgT0
csvファイルを全部読み取って配列化して目的のデータを書き換えて再度csv化する
2023/02/18(土) 13:13:53.16ID:cEfNRW0h0
ひでーw
2023/02/18(土) 13:44:19.14ID:2bBix6DxM
このレベルの初心者は具体的なコードが無いと手順だけじゃ何もできんだろうから誰か優しい奴
2023/02/18(土) 13:48:09.21ID:c4QxGie20
CSVファイルのでかさにもよるけど>>462は常套手段だと思うよ
でかくて大変だというレベルならSQLiteなりを入れた方が良いかと
2023/02/18(土) 14:27:14.27ID:9M6+sMO5M
>>458
パンチが利いてるね

このサイトの方法は全然オススメしない
江戸時代の庶民みたいなレベル
見るだけ損だと思う
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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