X



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

■ このスレッドは過去ログ倉庫に格納されています
2020/05/27(水) 10:14:39.92ID:wHIUQvvs
■前スレ
ふらっと C#,C♯,C#(初心者用) Part147
http://mevius.5ch.net/test/read.cgi/tech/1582100741/
■関連スレ
C#, C♯, C#相談室 Part94
http://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://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/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://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
2020/08/23(日) 09:54:55.55ID:hvsmvUzC
>>666
> C/C++をちゃんと使える人

その条件が厳しいのであって
2020/08/23(日) 10:26:37.44ID:VT3zweO2
そんな奴はNodeなんかもっと無理だろう。
ただ、場合によってマーシャリング周りのケアが必要だったりするのは面倒だな。
C++/CLIにたいに簡単に混載アセンブリが作れるようになるといいんだが。
2020/08/23(日) 10:57:40.13ID:a/7Z84eB
構造体とかの宣言そのまま使えればまだ楽なんだけどな
2020/08/23(日) 17:38:14.48ID:eGrEvTfW
使いたいライブラリのポーティングを誰かが書いてくれてなきゃ面倒くさいのはどの言語も一緒や
2020/08/23(日) 23:49:57.01ID:4bjv9WhY
とあるWin32APIが使いたくて調べたら複雑な構造体。自分で書く気がしなかったのでNugetで調べたらあってそれを使ったな
仕事で使うわけじゃないし動けばいいレベルだったんで
672デフォルトの名無しさん
垢版 |
2020/08/24(月) 00:18:35.63ID:gju3/uvh
メソッドを式にするっていう言語機能は推奨されてるの?
=>これつかうやつ
2020/08/24(月) 00:31:53.84ID:DTgSNb0G
正式に推奨されてる記述なんてどこにあるか知らんが普通に使うよ
最新のコードでも積極的に利用される
2020/08/24(月) 01:09:32.32ID:05kgCzh1
1行ですむ場合はよく使ってるね
コンストラクタとかプロパティとかでも
2020/08/24(月) 01:15:28.38ID:mWdjrSvr
古くなって非推奨に変わるならともかく
後から追加した新機能が非推奨ってことは無いだろう
676デフォルトの名無しさん
垢版 |
2020/08/24(月) 12:59:26.26ID:lc2zn6Uu
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

VM + ASM を書いた (C#, DX) * x86 ではない!
simulationライブラリで純粋な関数式プログラミングをする
UIライブラリ (C#, 2D) を作ったよ
連続と離散を統一した!
4Dエンジン
matrixのライブラリ
ある強力なFor関数
SQLライブラリ

VM + ASM のダウンロード
ttp://up.x0000.net/files/TSimulang.zip
2020/08/24(月) 13:02:04.24ID:ZCPf8xls
>>672
LinQとラムダと組み合わせれば世界が変わる
678デフォルトの名無しさん
垢版 |
2020/08/24(月) 13:33:45.09ID:3u4r+xiS
Linqの自分で描きかた教えて
2020/08/24(月) 14:09:11.43ID:RM8Y/2Sc
Linq分かりづらい上にパフォーマンスガタ落ちするから絶対使わない
これこそC++みたいに単なるマクロにして中身はforと同等って出来ないのかよ
2020/08/24(月) 14:11:37.63ID:CJwBPXMi
分かりやすいし
ガタ落ちというほど落ちない
2020/08/24(月) 14:21:25.49ID:05kgCzh1
わかりやすいやろ
2020/08/24(月) 14:22:23.10ID:mWdjrSvr
Linqが分かり難かったらいくつもの他言語に移植されたりしない
2020/08/24(月) 14:40:06.14ID:+ykHXfcV
例えば微分積分がわかる人とそうでない人のようにラムダにも認知の境界線があるのかもしれないね

微積分を使った短いスマートな証明があったとして
微積分を知ってるとエレガントに見えるけど
知らない人にはちんぷんかんぷんだろう

微積分を使わない遠回りな証明があったとして
微積分を知ってるとなんでこんな回りくどいわかりにくい証明を書くんだと思うが
微積分を知らない人にとってはそれが唯一無二の最善の答えになる
2020/08/24(月) 14:57:53.24ID:7VElnv7m
LinqのわかりやすいHP教えてください
2020/08/24(月) 15:03:26.07ID:FheaIdem
>>683
無理矢理小難しく賢ぶらなくていい
Linqなんて中身難しい事してないんだから分かりやすいか否かは英単語の習熟度に過ぎない
2020/08/24(月) 15:04:19.77ID:FheaIdem
>>680
単体で比べるとガタ落ちどころか天と地の差になりうるケースもある
ただしプログラム全体という広い森の中で特定の木の葉を見る意味はないし、そこがボトルネックになるなんて事は天文学的低確率だろう
2020/08/24(月) 15:10:10.04ID:YTiCvQcX
Linqが分からんっていうやつは、ラムダ式が分からんだけの気がする
2020/08/24(月) 15:22:03.15ID:mWdjrSvr
>>686
単なる確率じゃなくて適材適所
ものすごい回数ループする処理の中では1回あたりの処理時間はなるべく短い方が良いし、そうじゃないなら気にする必要は無い
ただそれだけ
2020/08/24(月) 15:37:30.98ID:FheaIdem
>>688
長いループや超頻繁に呼ばれる処理でLinq挟むプログラマがどれほどいるのかと言う点での確率
それで言うと天文学的よりは全然高かったな、すまん
2020/08/24(月) 15:38:42.64ID:egtioWPt
俺も初めの頃はわけわからんし使わなくても処理できるやんって思ってた
使い慣れるとlinq無しでなんでC#使ってんの?ってくらいには必須機能になった
linqがあるからC#好きになれたまである
2020/08/24(月) 15:42:14.73ID:egtioWPt
俺の場合はラムダ式がわからん、というよりどういうケースだとlinqで簡潔にさばけるか?がピンとこなかったのが大きいかな
2020/08/24(月) 15:56:59.56ID:jEaM82Hb
c#でLINQガンガン使った後に
stream使えないAndroid Javaやるとすっげーめんどくさくて途端に生産性落ちる
2020/08/24(月) 16:09:29.88ID:Oh8En2eh
ラムダ式とは言うけど無名関数を省略して読みやすくしてるだけだしな

本質が抽出されて見やすい
2020/08/24(月) 16:12:46.94ID:M+1SEUhB
えっAndroid Javaってstream使えないん?
2020/08/24(月) 16:39:00.30ID:7VElnv7m
宣言もなしにaとかbとかつかってわけわかめ
2020/08/24(月) 16:58:28.67ID:Fzci7EDp
>>679
こういうの気にしだすとたかが文字列操作ですらヒープアロックが発生するC#は使えなくなるんだよなぁ
実際俺は仕事でしかC#使わなくなったわ
常駐レベルで使用するようなアプリはC++で作るし、そうじゃないものはElectronとかで作っちゃうな
C#はどちらにしても中途半端
2020/08/24(月) 17:03:17.54ID:M+1SEUhB
パフォーマンス重視でもC++はねえな
RustかGoでしょ
Electronはクソ重いから論外
2020/08/24(月) 17:03:56.60ID:d0Z3Q+xD
Linqわかりづらいか?
むしろ、だからC#使ってるって同意見。
ラムダもそう。
拡張メソッドも地味に便利よね。

Go使ってブラウザで操作する類のものもよく作るが、
小物にelectronは無いな。
巨大すぎるわ。
2020/08/24(月) 17:09:06.88ID:tUlvdSLz
Rustって言われてる割にちゃんとした完成品を見たことがない
意識高い系がとりあえず言ってるだけって印象が完全に根付いてしまった
2020/08/24(月) 17:10:22.28ID:XtuAKOWf
>>695
hogeList.Select(x => x.Foo)
みたいなのがあったときに、このいきなり出てきた「x」って何?ってなるのは気持ちとしては分かる
色々簡略化された結果こう書けるんだってのが分かると気にならなくなる
2020/08/24(月) 17:51:58.44ID:ZCPf8xls
複数次元の複雑なデータ構造触ればLinQのありがたみが分かるってもんよ
2020/08/24(月) 20:52:34.75ID:P8nDqnTy
今のVisual StudioはC++で作るの非推奨だからC#で満足してるわ
703デフォルトの名無しさん
垢版 |
2020/08/24(月) 21:37:59.27ID:7XwWH2kN
>C++で作るの非推奨
2020/08/24(月) 21:47:57.80ID:A8gJmUTW
むしろ近年のMSはC++に回帰してるんだよなあ
2020/08/24(月) 21:57:28.04ID:RW1y5ZfB
流石によほどのことがない限りC/C++を捨てたりしないでしょ
2020/08/24(月) 22:45:50.15ID:8pqE6cz6
昔々ifとgotoで自由にループを書いていた暗黒時代を経てよく使う特定ユースケースが、
・while
・until
・for(each)
に整理され抽象度が一段上がったのと同様、for(each)で自由に書いていたループ処理のうち特定ユースケースが、
・select
・where
・any
・contains
などに整理され抽象度が一段上がったのがLinq to Object。
2020/08/25(火) 08:46:47.00ID:dSQFdE+U
SQLっぽい印象だな
708デフォルトの名無しさん
垢版 |
2020/08/25(火) 09:38:59.89ID:uEGrLz0S
Linqのselectは、SQLと違って個々のオブジェクトを返すわけじゃない点が使いづらいな
一体なんでこんな仕様になってるんだか・・・・
2020/08/25(火) 10:44:48.22ID:qggOQ06C
>>708
どんなケースが使いにくいん?
2020/08/25(火) 10:48:05.40ID:8u+D4Xfy
>>709
重ねると、ふたがひしゃげるやつ
711デフォルトの名無しさん
垢版 |
2020/08/25(火) 11:07:22.87ID:Zt9gBA2M
det=0
2020/08/25(火) 11:33:48.25ID:+vlPxZ6Q
ループからシーケンス(列挙オブジェクト)という発想の転換は偉大だったと思うし、
その意味では一般にはほどんど評価されてないように思えるイテレーターは凄い発明だと思ったけど、
正直LINQに関してはそこまでの革新を今も感じないね。

クエリ式は特に読みづらいしねw
2020/08/25(火) 12:00:17.35ID:hztyKjQH
イテレーターが凄い発想?
再帰なんて古代エジプトからあるだろ
2020/08/25(火) 12:19:29.57ID:udMwTrr2
イテレータと再帰に何の関係が?
715デフォルトの名無しさん
垢版 |
2020/08/25(火) 12:22:26.05ID:bE5w+3Jw
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

VM + ASM を書いた (C#, DX) * x86 ではない!
simulationライブラリで純粋な関数式プログラミングをする
UIライブラリ (C#, 2D) を作ったよ
連続と離散を統一した!
4Dエンジン
matrixのライブラリ
ある強力なFor関数
SQLライブラリ

VM + ASM のダウンロード
ttp://up.x0000.net/files/TSimulang.zip
2020/08/25(火) 12:22:45.39ID:KRGfI1UY
繰り返しになりますが>>181
2020/08/25(火) 12:25:17.30ID:a9tz8PO4
>>716
404 - Page not found
2020/08/25(火) 12:31:50.66ID:mY7DCxIU
>>713
再帰?
知ったか失敗なのかな?
2020/08/25(火) 12:41:40.12ID:KRGfI1UY
>>717
https://docs.microsoft.com/en-us/archive/blogs/nakama/net-part-1
確かに
https://docs.microsoft.com/en-us/archive/blogs/content-removed
ですね
https://docs.microsoft.com/en-us/archive/blogs/nakama/233

We're no longer updating this content regularly.
Check the Microsoft Product Lifecycle for information
about how this product, service, technology, or API is supported.
2020/08/25(火) 12:43:18.95ID:udMwTrr2
>>717
消されたんかな?

.NETの例外処理 Part.1
https://web.archive.org/web/20190112010848/https://blogs.msdn.microsoft.com/nakama/2008/12/29/net-part-1/

エラーチェックの体系的な分類方法
https://web.archive.org/web/20190112010345/https://blogs.msdn.microsoft.com/nakama/2009/09/28/293/

↑のページに「.NET の例外処理 Part.1~4」と、「.NET と Java の例外処理の違い」のリンクがある
721デフォルトの名無しさん
垢版 |
2020/08/25(火) 12:55:44.93ID:pO8df0ou
メソッド単位で例外拾って握りつぶすのが最強
722デフォルトの名無しさん
垢版 |
2020/08/25(火) 14:50:23.21ID:5rUjA6cm
アクセス修飾子のデフォがわかりにくい。
classだけだとpublicなのかprivateなのかわかりにくい。
そんなもんいつまでも覚えてられない。
現代人は忙しいのだ。
723デフォルトの名無しさん
垢版 |
2020/08/26(水) 16:45:57.46ID:Mcis0VWw
教えてください
VS Comunity2017使ってるのですが
インストールされてるC#のバージョンって何処見れば分かりますか?
switch文のcase条件を型でwhen句使って分岐できるから7.0以上だと思うけど
ちゃんと確認しておきたいので
2020/08/26(水) 16:54:15.45ID:4E9MnypA
C#のバージョンとは

言語のバージョンなのか?
コンパイラのバージョンなのか?
.NETのバージョンなのか?
2020/08/26(水) 16:57:35.70ID:guP1FqQ/
Communityはちょっと分からんのだけど
ソリューションエクスプローラーのプロパティ→ビルド→詳細

もしくはこれでもいいかな
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/configure-language-version
2020/08/26(水) 16:59:22.64ID:bGAcIu/O
>>723
なんでそのまま検索せずにここで聞くのか200字以上400字以内で教えてくれ
727デフォルトの名無しさん
垢版 |
2020/08/26(水) 16:59:52.62ID:Mcis0VWw
あーそういうのがあるんだ、、、
言語かコンパイラだと思うけど
バージョンによって使える構文が違うでしょ?
それはコンパイラなのかな?
2020/08/26(水) 17:02:24.82ID:guP1FqQ/
ufcppでも見とけよ
M$の中の人だから嘘偽りはないと思う
2020/08/26(水) 17:03:11.03ID:guP1FqQ/
例えばこんなのとか
https://ufcpp.net/study/csharp/cheatsheet/langversionoption/
730デフォルトの名無しさん
垢版 |
2020/08/26(水) 17:09:31.13ID:Mcis0VWw
>>725
ビルドの詳細にあったわ
ありがとう
他の奴らは死ね
2020/08/26(水) 17:10:37.32ID:nDQPeisN
他のやつらは氏ねはひどいなあ
>>725はID変わったけど俺だぞ
2020/08/26(水) 17:27:52.35ID:wtfYsFOD
自殺した>>730がいると聞いて
733デフォルトの名無しさん
垢版 |
2020/08/26(水) 17:52:34.19ID:/5LXgdg3
ソリューションとプロジェクトの違いは?
734デフォルトの名無しさん
垢版 |
2020/08/26(水) 17:54:02.89ID:dZW3ATMV
かっこいい
C# で描きたい
https://twitter.com/tachisto/status/1298258890941898752
https://twitter.com/5chan_nel (5ch newer account)
735デフォルトの名無しさん
垢版 |
2020/08/26(水) 18:12:42.56ID:oEB3gdtA
>>733
C#でどうなのか知らんけど、昔ながらのWindowsアプリの場合だと。

一つのアプリにはDLLやEXEが複数必要です。

ひとつのアプリを作るためにソリューションを使います。
ひとつのDLLやEXEを作るためにプロジェクトを使います。

したがって、ソリューションの中にはDLLやEXEの数だけプロジェクトがあります。

って感じでした。
2020/08/26(水) 19:02:50.43ID:BpaQECb0
荒らしには、答えない方がよい

検索すれば誰でも分かる
2020/08/27(木) 12:18:48.37ID:/6w2hZAm
.Net Core3.1のWinFormsってDataGridView無いのか・・・
まぁデスクトップアプリなら.NET Frameworkで不自由はないんだけどさ
さすがに.NET5ではこの辺も完備されるよね?
2020/08/27(木) 15:38:25.12ID:XooyWedE
しばらくは.netが安全かね
2020/08/27(木) 15:39:09.43ID:XooyWedE
ごめん.net frameWork
2020/08/27(木) 15:51:36.34ID:5vWswAlk
>>737
あるやろ
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.datagridview?view=netcore-3.1

ツールボックスに出てきてないのなら、いったんツールボックスのリセットをしよう
741デフォルトの名無しさん
垢版 |
2020/08/27(木) 17:17:22.18ID:bJbtmN9C
.NET 5は.NET Coreがベースと聞いたので、.NET Coreをお薦めします。
742デフォルトの名無しさん
垢版 |
2020/08/27(木) 19:04:01.29ID:GRw71Xrg
.NET CoreでButtonが出てこなくなる症状に俺も遭遇したことある
そんなバカなと思ってその時はアプデしたら治ったけどButtonが出ないって英語でググったら解決方法色々出てたよ
もしDataGridViewが出ないでググって出てこないなら試してみると良いかもしれん
2020/08/27(木) 20:53:58.97ID:6iHjEdSY
,net5 待ちで.net coreはやってないなー
2020/08/27(木) 21:09:34.73ID:3vg+bf0o
.NET Coreはデザイナにまだバグが残ってると思うけどそれ以外はできてるしな
2020/08/27(木) 21:39:14.62ID:kPlEQNDv
つかFormsを.NET5まで引っ張るのか?もう捨ててもいいだろ。
2020/08/28(金) 02:20:24.92ID:4DfkZ+9a
>>745
旧資産が多いからね。framework→.netの移行を機にユーザーの取りこぼしを少しでも防ぐために継続は仕方ないんじゃない?
2020/08/28(金) 02:24:52.64ID:dgSTJFNK
つかWinForms捨てたら後継は?
2020/08/28(金) 03:44:24.24ID:AhVeZHHn
ノートPCで.net coreのデザイナ開くのに時間がかかって、一時的に応答なしになる(待つと開く)んだけど、俺だけ?
i7 8550U / メモリ16GB / SSD NVMe 512GBなんで、決してポンコツではないと思うんだけど。
2020/08/28(金) 03:54:29.43ID:8aDUum+O
>>748
マルチメディア系の依存性でグラボのドライバとサウンドドライバと相性とか
Web API使うネットアクセスしてるんなら通信速度かも?
2020/08/28(金) 05:31:50.04ID:oE2/2ycX
JavaでGUIプログラムを作るのは大変なのに、それを画期的に簡単にしている
WinFormsを喜んで捨てるようなM$じゃないと思うぞw
まああれは元をたどればDelphiなんだがw
2020/08/28(金) 07:41:53.11ID:H7JELY0H
WinFormsってかWin32GUIの技術って覚えても他で応用効かないのがなぁ
GUIもHTMLで構築するのが最近の流れなだしC#もそうしてほしい
WPFもなんか違うし
2020/08/28(金) 07:43:09.49ID:uRkPXEbP
C++のGUIプログラムも簡単に作れたら良いな……
2020/08/28(金) 08:00:57.34ID:82Ydq7Fl
>>752
C++Builder
2020/08/28(金) 08:02:48.39ID:82Ydq7Fl
と言うか32bit時代は仕事にC++Builder本当に使ってたんだが
C#が出たんであっさりこれを捨てた
2020/08/28(金) 09:02:21.12ID:OvBt5QFO
Delphiも業務で使ってたな
2020/08/28(金) 11:31:52.66ID:cNFgn67M
WPFはバインドがもっと楽に書ければ良かったんだが
757デフォルトの名無しさん
垢版 |
2020/08/28(金) 12:06:01.11ID:LLs1s+XQ
>>747
WPF
758デフォルトの名無しさん
垢版 |
2020/08/28(金) 12:08:43.97ID:LLs1s+XQ
>>752
Tcl/Tk
WxWidgets
2020/08/28(金) 12:19:49.25ID:1Z5uoBOo
WPFはGUIに動画流すつもりでもない限りいらんわ〜
2020/08/28(金) 13:11:19.21ID:7/vp4FHO
FormsはVBゆずりのポトペタで素早くGUIアプリをでっち上げるのは
ほんとうに楽でいいんだけど、複雑になってくるとデザイナーで
編集するのが辛くなってくるし自動テストも面倒くさいな。
2020/08/28(金) 13:13:34.94ID:uRkPXEbP
>>753
>>758
あとで調べてみるわトン
2020/08/28(金) 13:20:23.57ID:MLu0ChVJ
Formsは高DPI対応が面倒
2020/08/28(金) 14:14:53.89ID:VQ4yRaWS
Electron.Netが最強伝説
764デフォルトの名無しさん
垢版 |
2020/08/28(金) 15:25:31.29ID:3b9hSP4x
MVVMパターンは必ず適用しなければいけないものではないので、それが理解できなくとも、WPFはWinFormsと同じようなスタイルでもプログラミングができる。
なので、WinFormsを使っている人は、そのことを知らないか、またはWPFで用意されているコントロール群が貧弱だと思った(自作する気のない)人なのではないだろうか。
しかし、最新のWinUIでは用意されているコントロールが過去一で豊富になるようで脱WinFormsが加速するように思われます。
2020/08/28(金) 15:42:28.39ID:VQ4yRaWS
WPFってしばらく開発すら放置していたのとクソ重いのは治ったの?
766デフォルトの名無しさん
垢版 |
2020/08/28(金) 16:20:09.70ID:3b9hSP4x
Windows 10の標準アプリをいくつか触って確認するといい。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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