X

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

レス数が1000を超えています。これ以上書き込みはできません。
2022/12/26(月) 23:53:21.36ID:/QyjmJjHa
久しぶりにC#の世界に戻るかもしれないんだけど、
以前触ってたのはVS2010/Windows 7の時代なんで浦島太郎状態

で、言語の方は自分で調べて差分を埋めようと思うけど、
実行環境というか、以前ならCLRとか.NET Framerowkと呼ばれていたものが
どう変わったのかいまいちよく分からないんですが、その辺サクッと分かる記事とか
どっかにないですかね?
2022/12/27(火) 04:54:00.45ID:WD60NfHsM
実行環境は現在進行形で変化中
2022/12/27(火) 16:09:13.51ID:/tVTIbQ7a
>>67
.NET FrameworkはWindows用
マルチプラットホームは.NET Standardという規格で.NET Frameworkや.NET Coreやmonoをつないでいた
今はそれらが全て統合されて.NETになってる
Windowsユーザーから見れば.NET Coreが.NETという名前になって.NET Frameworkを吸収合併したと見てもそれほど大きくは間違ってない
Visual Studioの新規プロジェクトテンプレートでは無印のものが.NETで.NET Frameworkと書かれてるものが旧バージョン
旧バージョンではあるがWindows専用に作られただけあってWindowsアプリを作る時には.NET Frameworkが便利な場面も一部ある
しかしいずれ消えるので新規アプリは.NETで作るべき

これだけ把握しときゃ後は何とかなる
2022/12/27(火) 16:37:34.00ID:SBS6S5Xya
.NET5以降はサポート期間が最長でも3年で、ジャパニーズドカタディヴィロップメントでの採用はかなり厳しいことに注意
そして、断言するが、.NET Frameworkは最終的には5以降のCore系の.NETよりも確実に長く生き残る
2022/12/27(火) 16:55:12.12ID:/tVTIbQ7a
.NET FrameworkはWindows UpdateでOSをアップグレードしたらサポート(インストールすら)されなくなることがあるからサポートが重要ならなおさら新しいバージョンを使うべき
2022/12/27(火) 16:59:13.21ID:SBS6S5Xya
>>71
使えてた.NET Framework がアップデートで使えなくなったってこと?
いつそんなことがあった?
2022/12/27(火) 17:01:47.74ID:/tVTIbQ7a
>>72
過去からの類推じゃなくMSのサイトにそう書いてあるぞ
2022/12/27(火) 17:11:35.01ID:usWDFVvc0
そもそも.NET Frameworkの最終バージョン4.8のサポートが多少長いのは破壊的変更が多いから今のうちに移行しろっていう猶予期間だって察しろよ
今から.NET Frameworkで新規開発始めるのは正気の沙汰じゃないわ
2022/12/27(火) 17:13:58.50ID:SBS6S5Xya
>>73
どこに?
2022/12/27(火) 17:16:43.50ID:/tVTIbQ7a
俺が探すんかいw
ググれよ
サポートはOSのポリシー次第って書いてるのが簡単にみつかるから
2022/12/27(火) 19:42:29.97ID:zfINmmJX0
4.8.1とかになってまだまだ毎月パッチ当たってるし
あと10年はOSにデフォルトで搭載されるっしょ
net core系は今後もデフォルトでは絶対に入らないから
余計にそうなる。

.net4.8と比べ、.net7の方がファイル数もファイルサイズも速度も速くなりますなんてものほぼないし。

だってフレームワークがクロスであることには意味があっても
各人が作る最終制作物をクロスで動かすなんてことはほぼない
わけなんだから
2022/12/27(火) 21:31:21.16ID:24MwsJWsd
>>76
https://learn.microsoft.com/en-us/lifecycle/faq/dotnet-framework#what-is-the-microsoft-lifecycle-policy-for--net-framework-
> There is no change to the lifecycle policy for .NET Framework 4.x and its updates which continue to be defined as a component of the OS and assume the same lifecycle policy as the Windows version on which it is installed.

もしかしてこれのことか?
これはつまりWindowsの一部としてサポートしますよという意味で、MSとしてはむしろ最強クラスのコミットメントだよ
2022/12/27(火) 21:32:52.86ID:usWDFVvc0
Windowsがバージョンアップするの知らないやつおるな
2022/12/27(火) 21:34:22.17ID:usWDFVvc0
てか4.8が最終バージョンてとこでどんなボンクラでも後がないんだなーって気づくだろ
マジで気づかないの?
2022/12/27(火) 21:55:57.93ID:oPwbbFHg0
でもMSってなかなかレガシーを切れないから、
Windows15くらいまでFramework 4.xも平行して続けてもおかしくない
2022/12/27(火) 21:59:42.62ID:iT9wnpuva
>>69
質問者じゃ無いけど為になるわ、有難う
2022/12/27(火) 23:07:28.89ID:XEOmC2Uoa
>>69
なるほど。簡潔で分かりやすくて助かります。ありがとう。
2022/12/28(水) 00:25:13.64ID:BhD4UP040
.net standardは規格なの?
いつの間にかこの概念を耳にすることがなくなったのでまだよくわからん
.net core以降で開発する時にこいつをどう意識すべきなのかな?
2022/12/28(水) 00:32:31.57ID:De8+sS85d
>>84
.NET Standardはバージョン2.1で.NET Frameworkを切り捨てたため、事実上の存在意義をほとんど失った
不特定多数向けにNuGetパッケージを開発しているのでない限り、全く気にする必要はない
2022/12/28(水) 00:56:41.13ID:Sx0QargEM
.NETはいつまでたっても未完成品
今後のことも考えて仕方なく使ってる
87デフォルトの名無しさん (ワッチョイ cd35-L5ZK)
垢版 |
2022/12/28(水) 01:13:53.13ID:wPwgxApG0
.NETはゲートウェイを指定してHTTPリクエスト送るのがメチャクチャ回りくどくなった
これに限らずリファクタリング版は大抵劣化してるだけのゴミ
88デフォルトの名無しさん (テテンテンテン MM97-Lt9E)
垢版 |
2022/12/28(水) 02:23:47.28ID:Irs2dr9FM
>>69
最近C#始めたのでこういう情報はありがたい。
89デフォルトの名無しさん (ワッチョイ 4b01-+TDV)
垢版 |
2022/12/28(水) 07:34:10.36ID:dX6G49pN0
だからといってC#の代わりになる言語なんてあるはずもなく…
2022/12/28(水) 08:32:36.89ID:H7K9gIx/0
>>85
2.1は意味わからんよなぁ。うちはしばらく2.0でいく。
2022/12/28(水) 08:35:34.24ID:NjDNkmkXM
.NETはサポート期間が短いのが難点
業務アプリならやっぱり.NET Framework
2022/12/28(水) 08:39:03.13ID:adfqLiPC0
何をサポートしてほしいのか知らんけどバージョンアップすればいいじゃん
2022/12/28(水) 10:03:45.99ID:w/3S+pjQa
>>92
まあ.NET Frameworkは少なくとも今後10年のうちにサポートを切られることはないだろうから、仮にリミットを2032年としよう
現在最新のLTSである.NET6で開発したとして、サポート期限は2024年だ
そしてLTSは2年毎にリリースされ、リリースから3年間サポートされる
つまり3年を超えて使い続ける想定であれば2年毎のアップグレードが必要であり、
まず2024年にLTSの.NET8にアップグレードして以後は2026年、2028年、2030年と計4回のアップグレードが必要になる
一方.NET Frameworkを採用していればその間何もしなくてもいいわけだ
技術者として新しいものを使いたい感情は理解するが、これを客に正直に説明すれば客が望むのはどちらか、答えは明白だろう
2022/12/28(水) 10:11:55.61ID:DxmYqBGj0
特に不便が無ければ、枯れた.NET Frameworkの方が安定して動作するからな
.NETにしか無い新しい機能が必須!とかならともかく
2022/12/28(水) 10:14:16.94ID:pub52T/ya
作りっぱなしで何年放置する気なんだよw
2022/12/28(水) 10:16:06.74ID:Sx0QargEM
自分用のアプリは全部.net framework
新しい機能を試したい場合はcore使う
未完成品のデザイナがまともになれば.NETに全面移行するんだけど
それにAPIに互換性のないものがあるのが困る
2022/12/28(水) 10:29:31.98ID:kH4/nphD0
>>95
放置してようがアクティブに開発してようが、アップグレードの際のコストに大差はない
自社サービスや内製システムのキラキラした話によって、アクティブに継続的な開発が行われているシステムではアップグレードしやすいというようなイメージを持っているかもしれないが、実態は別にそんなことはない
そういった恵まれた環境では、受託と違って自己責任なので場合によってある程度品質を犠牲にする選択がしやすいのと、比較的エンジニアスキルが高く彼らの技術者的感情もが尊重されるから、
結果的にアップグレードに積極的な傾向があるだけだ
2022/12/28(水) 10:29:50.24ID:NjDNkmkXM
>>95
最低10年は使います
2022/12/28(水) 10:44:14.55ID:a2brMVFI0
マイクロソフトはしくじり先生だからな
2022/12/28(水) 11:11:15.73ID:DxmYqBGj0
>>95
不具合や不都合が出るまで
出ないのが一番良いシステムだからな
2022/12/28(水) 11:13:26.28ID:adfqLiPC0
さすがに三年バージョンアップ無しのソフトはオワコン扱いだわ
2022/12/28(水) 11:24:48.04ID:Sx0QargEM
>>101
そもそもコンテンツじゃないからな

産業界などでは何十年前のソフトがずっと動いてるなんてざらだろ
一度作ったソフトが何も問題ないならわざわざフレームワークのアップデートでバージョンアップ版作り直す必要はないわ

MSが頻繁に電卓をアップデートしてるのがおかしい
誰も電卓に期待してない機能をどんどん継ぎ足してる
ほっとくと電卓がexcelになる
2022/12/28(水) 11:31:58.72ID:DxmYqBGj0
>>101
ペイントやメモ帳はいつオワコンになるの?
2022/12/28(水) 11:36:51.92ID:adfqLiPC0
>>103
開発が止まったらかな
2022/12/28(水) 11:48:38.96ID:Sx0QargEM
ペイントもメモ帳も開発が続いてる
いらない機能を追加し続けてる
MSはアホなのかと

単体で毎回100MB以上ダウンロードさせてる
世界で数億台あるwindowsマシンのリソースや
世界の電気の無駄づかい

MSは自然由来の電力を使っていますと言ってるけど各家庭や職場はそうじゃない
106デフォルトの名無しさん (ワッチョイ 4b01-+TDV)
垢版 |
2022/12/28(水) 12:13:16.73ID:1ZDH9Auj0
>>105
Googleにも言ってやれ
107デフォルトの名無しさん (ワッチョイ 4b01-+TDV)
垢版 |
2022/12/28(水) 12:15:23.61ID:1ZDH9Auj0
>>102
グラフ描画機能おもろいよな
コンバーターもかなり便利だと思う
2022/12/28(水) 12:20:18.60ID:Sx0QargEM
>>107
そんなもんいらないだろ
常識的に考えて使ってるのは0.001%もいない
109デフォルトの名無しさん (ワッチョイ 4b01-+TDV)
垢版 |
2022/12/28(水) 12:24:19.22ID:1ZDH9Auj0
>>108
いるけど?
2022/12/28(水) 13:28:37.15ID:vcAICwg7M
https://i.imgur.com/s0yi3rO.png
https://i.imgur.com/VHNgxDA.png
2022/12/28(水) 13:50:31.59ID:wPwgxApG0
関数グラフは普通に便利
2022/12/28(水) 13:54:36.91ID:Sx0QargEM
世界に数人の電卓に関数グラフいるマンがいるから環境が破壊されるw
2022/12/28(水) 13:55:18.27ID:Il6zR38K0
100均の電卓使ってろよw
2022/12/28(水) 13:57:41.39ID:wPwgxApG0
まあ実務で使う業種は少ないかもしれんな
大学とかの勉強とか研究とかではグラフを描きたいときはよくある
2022/12/28(水) 13:58:04.76ID:adfqLiPC0
0.001%が数人のわけないじゃん
2022/12/28(水) 14:03:29.19ID:Sx0QargEM
>>115
> 常識的に考えて使ってるのは0.001%もいない

国語力ないなお前は
2022/12/28(水) 14:22:55.52ID:adfqLiPC0
国語力ってのはある程度目安になる数字を出してから行ってくんないかなあ
少し数字を変えて80億人もいないとか言っても意味ないのはわかる?
2022/12/28(水) 15:09:50.05ID:DxmYqBGj0
そういえば電卓アプリって整数だけで、浮動小数点には対応して無いんだな
アップデートはよ!
2022/12/28(水) 15:33:29.47ID:vcAICwg7M
目ん玉と頭の中のアップデートが必要か?
普通に小数は扱えるし指数表現もおk
というか関数電卓の機能すらあるのになぜ整数だけだと思った?
2022/12/28(水) 16:40:36.91ID:wPwgxApG0
プログラマー計算機モードのこと?
2022/12/28(水) 16:52:53.39ID:vcAICwg7M
違う
三角関数や指数・対数計算などの時の計算モードのこと
2022/12/28(水) 17:16:59.28ID:fcgTO/L50
電卓はデカすぎ拡大機能はいらないから縮小させろ
クソデカボタンをマウスで押すとでも思ってんのかMSさんは
2022/12/28(水) 18:01:07.80ID:Sx0QargEM
>>122
サイズ変えられると思ったけど一定サイズ以下にはならんのね
確かに大きすぎると言われれば…

スレチがいつもまでも続いてごめんね…
2022/12/29(木) 01:37:50.91ID:CkMUjB1Z0
webformアプリ抱えてる会社とかこれからどうするのかな
リプレイスするにしてもほぼ再設計になるだろうし
2022/12/29(木) 01:52:43.43ID:hXn490H8d
どうするもクソも.NET Frameworkを使い続けるだけだよ
.NET Framework のサポートが終了するのが10年先か20年先かはともかく、その頃には既にCore系の.NETもレガシー扱いとなり新しい代替技術が出てきているはず
中途半端なステップを踏む必要はない
2022/12/29(木) 08:23:14.39ID:lMHmGud10
.netは .NET6すなわち2021年秋ではじめて
広範な人々が.NET Frameworkに変わるものとして提供する
ある程度安定したプラットフォームです、
ってなったばかり。

Core3系ではリプレイスにはなり得なかったし.NET5は
実験もしくはアーリー用といった扱いだったし。

新体制はまだ1年、マイクロソフトの特性から考えて
.net4がOSのプリインストールでなくなるのが最速で2031年あたり
3.5と同じようにnet4依存の実行ファイルの初回実行時に
自動インストールを問うような仕組みが外されるのは
2041年頃だろう。
2022/12/29(木) 08:45:18.11ID:PenkwzkkM
.NET6が安定と言われるのは.NET統合後最初の長期サポート版だからだよ
.NETは基本的に奇数バージョンがCurrentで登場後に偶数バージョンがLTSCでリリースされることになってる
新機能を早く使って試したいユーザーは毎回更新してもいいけど安定サポートを望むなら偶数バージョンを乗り継いでいく運用が推奨されてる
2022/12/29(木) 08:52:51.63ID:WhR/7OthM
Microsoftが「.NET 6」正式リリース .NETとして最初の長期サポート版
https://www.itmedia.co.jp/news/articles/2111/09/news097.html
2022/12/29(木) 09:29:46.53ID:tI3f/ZOaM
予定は予定
2022/12/29(木) 09:52:34.13ID:vsTrl5VYa
「アップデートに追従できないなら.NETランタイムのバージョンを固定して塩漬けにしろ。そのために完全なサイドバイサイドとSCDを実現した。」
が.NET5系の互換性に対する基本ポリシーなんで、バージョンが上がる際に.NET Framework よりも気軽に破壊的変更を入れてくるのは確実
Windowsのアップデートに影響されないから本来的には楽になるはずなんだけど、常にセキュリティパッチを当てているかをちゃんと監査してるようなとこではかなり厳しいだろうね
2022/12/29(木) 10:13:30.04ID:TqrfwAhK0
.NET6 のサポート期間は3年。
その期間の開始は去年で、終わるのが24年。正式リリースはやっと今。

このサポート期間の短さゆえに .Net Framework4.8 (31年まで)を採用とか、実際にあった話なんけど、なんとかなんないかな。
2022/12/29(木) 10:19:25.53ID:FsWoaG/y0
そこまでバージョンアップを厭うシステムが間違ってるから見直せばいいと思うぞ
君らが必要としてる.NET Frameworkのサポートもバージョンアップという形でサポートするだけだから何も変わらん
2022/12/29(木) 10:37:53.61ID:KOe6T0Hj0
いや、できることが増えるならまだしも劣化版になんで苦労して移植せなアカンのかってね
結局win32apiで組んでおけばよかったねってのが
結論になっちゃってるダッサ
困る困らないじゃなくてダッサ

そういう裏切りを何度も受けてるこその現状
今の年寄りは平気でじゃあwin32apiでっていうぞ
ちょうどそういう世代だし
バージョンアップしなくていいLinuxで組むってのもやってる

会社で
会議を開いてメリットデメリットを比較のために並べるとどうしてもそういう方法が選択されてしまう
ビジネスだからメリットデメリットを並べてでた結論には逆らえない
なのでc++に戻ってるまである(Linuxでも使えるから)
上の人間はプログラマの都合なんて決定に混ぜない
2022/12/29(木) 10:39:20.87ID:lptjzTiX0
>>132
それはシステムではなく組織構造や契約の問題だからなんとも
ベンダーにとってはスタックの更新は貴重な売上機会だし、不具合出したら責任負わされるから、やるからには大袈裟にしたい
一方で、客からすればそんなことは何の価値もない作業に見えるから、当然なるべく避けたいわけ
2022/12/29(木) 11:06:51.22ID:FsWoaG/y0
それをシステムと言うんだ
一つ勉強になったな
2022/12/29(木) 11:21:32.29ID:vRFAISe50
現在の最新版(Current)は 7.0.1
長期サポート版(LTS)は 6.0.12
https://i.imgur.com/WzanYc9.png
2022/12/29(木) 11:26:43.85ID:lptjzTiX0
>>135
周辺の人間活動までシステムに含めるのならその通りだが、だとすると君は「間違っているのは俺ではなく世界の方だ」と言っているようなものだ
もはや主張としてなんら意味を持たない単なる厨二病的発言ではないか
2022/12/29(木) 11:54:44.25ID:xuhhAGayM
https://dotnet.microsoft.com/ja-jp/download
2022/12/29(木) 12:03:29.41ID:xOWUnGzja
>>137
単純に君の世界が他の人の世界より狭いとは思わんのかね?
2022/12/29(木) 16:21:08.98ID:HWC94+Gl0
ぶっちゃけ今の.NET戦略は失敗してる
出た当時からほぼ完成されていたCOMを進化する方向になぜ行けなかったのか
政治的な問題なのか
2022/12/29(木) 16:39:34.35ID:qCyL+8y1M
Googleの存在がなければCOMとActiveXが進化する方向性も僅かにあったかも知らんけど今更な話だな
2022/12/29(木) 18:33:53.34ID:rmjwbbUN0
COMを使ったことあれば
> 出た当時からほぼ完成されていたCOM
なんて戯言を言わなくなると思う...
2022/12/30(金) 10:20:04.38ID:Gfrgu+Wn0
>>136
今更Currentかよ
2022/12/31(土) 23:37:47.65ID:A8GWHO1q0
MVVMというものについてなのですが、ビューからではなくモデルでプロパティを書き換えた場合にもビューに伝達するようにしたい場合はビューのプロパティもPropertyChangedを実装しないといけないという認識であっていますでしょうか。
2023/01/01(日) 00:39:25.58ID:5MDrbxjOM
いいえ
モデルがプロパティ書き換えたよと言う情報を登録先に投げるので何も変わりません
2023/01/01(日) 00:51:29.52ID:e/1iR5vb0
モデルがプロパティを書き換えたよという状況がビュー側に投げられるようにするにはPropertyChangedを呼ばないといけない認識なのすが違いますか?
2023/01/01(日) 00:53:10.85ID:e/1iR5vb0
すみません、、「ビューのプロパティもProertyChangedを~」と書いていましたがモデルのプロパティの間違いです。。
2023/01/01(日) 00:54:54.59ID:e/1iR5vb0
ネット上のサンプルはモデルのプロパティがただのプロパティになっているものばかりで謎だったのですがやっぱりモデルもMVVM仕様に設計しないといけないんですよね。。
2023/01/01(日) 01:28:03.06ID:5MDrbxjOM
それが最大のネック
2023/01/01(日) 01:36:45.23ID:5MDrbxjOM
jsのMVVMフレームワークなどでは対象の変数をフレームワークが書き換えて
自動で通知するようになってる
2023/01/01(日) 01:51:36.44ID:msOaXkh40
黒魔術やな
2023/01/01(日) 01:54:15.78ID:5MDrbxjOM
言語レベルでプロパティに通知機構を入れてもいいはずだけどc#はそうしてない
今プロパティにinitアクセサ入れたけどbindアクセサを入れてもいいはず
2023/01/01(日) 10:26:27.48ID:e/1iR5vb0
良いサイトを発見した
https://ufcpp.net/study/csharp/misc/analyzer-generator/
2023/01/01(日) 10:55:37.88ID:3lvoVtEt0
誰でも知ってるサイトを今更紹介されても
2023/01/01(日) 11:28:07.18ID:9sUFDNQ3a
初心者用スレでドヤる老害w
2023/01/01(日) 11:57:09.95ID:e/1iR5vb0
>>154
このサイトというよりこのページの間違い
PropertyChangedを言語レベルで補助するつもりはなくてコード生成でやってもらう方針と書いてあったから参考になると思って。
2023/01/01(日) 11:58:47.34ID:3lvoVtEt0
>>156
そこはみんなが参考にしてるサイトだからそこだけじゃなく隅々まで全部読むといいぞ
2023/01/01(日) 12:00:43.26ID:e/1iR5vb0
みんな隅々まで読んでいてこのページも知ってたってことか
すまねえ…
2023/01/01(日) 12:15:07.10ID:j5f8HZB4a
>用途が狭く、言語機能としては採用しにくい

プロパティの変更通知は言うほど用途が狭いかね?
MVVMを推すくらいならそれくらい標準で実装してほしいものだが。
2023/01/01(日) 12:57:35.27ID:5MDrbxjOM
言語レベルでMVVMヘルパー実装しろと前から言われてるけど
実際は微妙な補助機能を数回追加し続けて便利になった便利になったと言い続けてる
2023/01/01(日) 13:13:30.89ID:ps54Dm7d0
>>159
C# は GUI 使わないコンソールアプリを作ったりもするからそんな変な言語仕様を入れられても困る
それでなくても最近ちょっとやりすぎなぐらい言語仕様膨らんでるし
2023/01/01(日) 13:25:47.58ID:5MDrbxjOM
言語仕様がふくらみすぎてるのは舵取りする人間がそういう人に変わったからで
C#はかなり学習しにくいゴミ言語になりつつある

一方で本当に需要のあるmvvmヘルパー機能はライブラリなどに投げられて15年
2023/01/01(日) 14:50:57.14ID:aOdp45l9a
そこは別にライブラリでいいだろ
そしたらVBもF#も使えるし
2023/01/01(日) 14:56:40.04ID:Db/riRaQd
今のC#のメインストリームは完全にWebに移ってるからね
Webではほとんどイベント使わないし、基本的にデータの流れが一方通行なのでプロパティの変更をモニタする必要がない
165デフォルトの名無しさん (アウアウウー Sac7-A544)
垢版 |
2023/01/01(日) 15:51:38.76ID:hQ/gnoFSa
ライブラリも別に便利じゃないというね
166デフォルトの名無しさん (アウアウウー Sac7-A544)
垢版 |
2023/01/01(日) 15:53:22.87ID:upITL37Ha
>今のC#のメインストリームは完全にWeb

MAUIはお遊びですか。
2023/01/01(日) 16:28:44.76ID:v8lxumL50
>今のC#のメインストリームは完全にWebに移ってるからね

何年も前からそういうことを言う人を見かけるけど、それを裏付けるまともな統計を見たことがない。
2023/01/01(日) 17:04:38.71ID:RDiXYdnpa
>>167
https://www.jetbrains.com/lp/devecosystem-2021/csharp/
現実見ようよ
2023/01/01(日) 17:32:06.42ID:v8lxumL50
JetBrainsのサーベイか。なるほどありがとう。
170.NET MAUI HighSchool (ワッチョイ 9a01-duIi)
垢版 |
2023/01/03(火) 04:26:10.48ID:KGK7R/p50
>>166
なわけなくね?
Blazor MAUIとか知らんのか?
あれWebアプリそっくりそのままモバイルアプリにできるすぐれものだぞ
171.NET MAUI HighSchool (ワッチョイ 9a01-duIi)
垢版 |
2023/01/03(火) 04:28:36.61ID:KGK7R/p50
まぁ最近の世界的な流行りがWeb化してるから仕方ないでしょ
俺は何でもかんでもWebアプリ化するのは嫌いだけどな
Figmaとかもちゃんとしたデスクトップアプリで使いたいわ
2023/01/03(火) 05:36:35.63ID:6MPz74YQ0
専ブラ作ってるのってマウイ君?
2023/01/03(火) 07:55:08.78ID:WKAtXrzF0
言うほどWeb化してるか?
スマホ時代からはむしろWebアプリで良くね?ってレベルのものまで何でもかんでもネイティブアプリ化してるのがめちゃくちゃうざく感じるが
2023/01/03(火) 09:54:09.47ID:DiXPGtkDd
Webアプリで良くね?ってレベルのものは実際開発者もそう考えていてWebブラウザを全面に貼り付けてあるだけのものが多く、技術的には完全にWebの一種
MAUI Blazorもまさにそうだね
175デフォルトの名無しさん (ワッチョイ 9a01-ChaJ)
垢版 |
2023/01/03(火) 13:48:08.97ID:KGK7R/p50
>>172
がんばってる
WinUI3って<ContentPage.BindingContext>ってないんだな
どうやってMVVMすればいいんだ?
176.NET MAUI HighSchool (ワッチョイ 9a01-ChaJ)
垢版 |
2023/01/03(火) 13:49:50.55ID:KGK7R/p50
>>173
スマホはそうかもだけどFigmaのようなそこそこスペックがいりそうなものまでWeb化してる気が、、、
177.NET MAUI HighSchool (ワッチョイ 9a01-ChaJ)
垢版 |
2023/01/03(火) 13:51:48.97ID:KGK7R/p50
>>174
MAUI BlazorはただのWebとはちょっと違うかな
Blazorを介して直接スマホのネイティブAPI呼び出せるっていうスゲー利点がある
ただこの機能を使わないなら別に普通のWebViewでも良いかなってのは思う。
2023/01/03(火) 14:07:52.60ID:6MPz74YQ0
>>175
WinUI3はコンパイル時バインディングっていうのだけ用意されてるらしいよ
179デフォルトの名無しさん (ワッチョイ 6301-9yt5)
垢版 |
2023/01/03(火) 18:41:34.03ID:yYGSV1g60
ニュースアプリとかウェブで良いよな。
180.NET MAUI HighSchool (ワッチョイ 9a01-duIi)
垢版 |
2023/01/03(火) 20:49:00.39ID:KGK7R/p50
>>178
よくわからんけどWindowの中にPageを追加したらPage.DataContextでVVMのBindingできました
181.NET MAUI HighSchool (ワッチョイ 9a01-duIi)
垢版 |
2023/01/03(火) 20:54:25.22ID:KGK7R/p50
とりあえずスマホ用の5ch.netからスクレイピングした板一覧をツリー表示させることに成功した
https://github.com/VipperNanashi/5chBrowser
ただ板取得はJsonのほうがいいみたいだからJsonから板を取得する方法を模索中
2023/01/03(火) 21:11:49.20ID:WKAtXrzF0
板一覧ってjsonで取れんの?
datのみだった記憶あるが
2023/01/03(火) 21:15:53.36ID:WKAtXrzF0
ぱっと見たけどHttpClientはstatic readonlyで一本永続化したほうが良いよ
稀にしか使わないならまだしも5chブラウザってことならむしろメインオブジェクトだし
184.NET MAUI HighSchool (ワッチョイ 9a01-duIi)
垢版 |
2023/01/03(火) 22:12:10.39ID:KGK7R/p50
>>183
クラスってどう分ければいいんだろうか?
板一覧取得サービス、スレッド一覧取得サービス、スレッド取得サービスで分けようとしてたけど
どうがいいんだろ?
2023/01/04(水) 00:43:08.29ID:r5YTutFsa
Ruby on Rails では、データベースの各表の設計・関連ばかりやる

1対1、1対多、多対多など
2023/01/04(水) 02:21:56.42ID:+C+yH2XZ0
HttpClientを含むネットワーク接続用のクラスを作成してマウイ君の言うところの各サービスクラスのコンストラクタに渡しておくとか?
2023/01/04(水) 11:27:50.76ID:Ry3dqHi90
>>173
各社脱獄を目論んでいる
なんでかっていうとgoogleやAppleの気分次第でアプリを修正しなくちゃいけなくて凄く面倒くさいから
amazonはアプリ作るのやめたっぽい
amazonでこうだから他はもっと面倒くさいと思われ

うちも中小だけどあるとき
ふっと動かなくなってるなんてことあって非常に面倒くさい
もう現状でWEBコントロールにWEBページ貼り付けて強引にアプリっぽい挙動してるけど
なんかもうWEBアプリにしちゃおうか?
って話出てる
188デフォルトの名無しさん (ワッチョイ 9a01-duIi)
垢版 |
2023/01/04(水) 15:19:20.75ID:4AqXXBLo0
>>187
MAUI Blazorでいいんじゃね?それ?
2023/01/04(水) 23:29:03.48ID:7N9i2DDEM
専ブラか…
15年ぐらい前にWPFで作ってたな
そのせいでWPFにいい思いを持てない

MS死ねって思えた
2023/01/05(木) 00:08:37.28ID:vn9u9eY2a
機能をてんこ盛りにしてもガワがダサいと台無しになるんだよな
優秀なデザイナーおらんかね
2023/01/05(木) 02:16:02.09ID:/ldjRQly0
>>190
フラットデザインならツッコまれない上に最古のieでも動くはず
2023/01/05(木) 17:24:19.12ID:p6lP0uhc0
short i;

i = 0; // ok
i = true ? 1 : 0; // コンパイルエラー(キャストが必要)

三項演算子で数値を返す場合って、int固定になってしまうのは言語仕様ということでしょうか?
2023/01/05(木) 17:32:00.71ID:p6lP0uhc0
ぁぁ
上記の場合はコンパイルエラーにならないですね。

以下のようにするとエラーになります
short i;
bool hoge = true;

i = 0; // ok
i = true ? 1 : 0; // ok
i = hoge ? 1 : 0; // コンパイルエラー(キャストが必要)
2023/01/05(木) 17:35:27.31ID:/ldjRQly0
演算子の評価順番が違うだけとかそんなことない?
2023/01/05(木) 17:47:32.82ID:Eo475Zw70
特に明示しない場合、整数リテラルはintになるからってだけなのでは?
2023/01/05(木) 18:35:00.85ID:KPj6QU/BM
まず右辺の数字は整数リテラルと言うもの

変数に代入時は整数リテラルは型より大きすぎるなどしてない限り変数と同じ型とみなされる
そうしないと不便だから

次に i = hoge ? 1 : 0;
の右辺は式である
整数リテラルは代入じゃないときは暗黙的にint扱いになるので右辺の式の値の型はintになる
これでキャストが必要

i = true ? 1 : 0;
この右辺はコンパイル時に決定されてるので代入可能

short s = 7000000-6999999;
これも代入可能なのと同じ感覚
2023/01/05(木) 19:27:18.86ID:p6lP0uhc0
>>196
ありがとうございました。理解しました

確かに
const bool hoge = true;
i = hoge ? 1 : 0;
とやってコンパイル時に決定されるようにするとエラーが無くなりました。

けど簡潔に書くための三項演算子なのに
(short)(hoge ? 1 : 0);
とかやると台無しですねぇ
2023/01/05(木) 19:54:52.08ID:ZKzvhdM60
むしろ、あえてshortを使う理由の方が気になるな
2023/01/05(木) 23:18:41.14ID:QBL7vIUt0
shortを表すリテラルのサフィックスがないのか
2023/01/05(木) 23:26:14.03ID:O+NRT3S+0
>>196
> 整数リテラルは代入じゃないときは暗黙的にint扱いになるので右辺の式の値の型はintになる
> これでキャストが必要
ほんとか?
short s = b switch { true => 1, false => 2 };
はエラーにならんのだが...
2023/01/05(木) 23:27:37.63ID:O+NRT3S+0
>>199
ない、あってもいいのにと思ったけどそもそもshortなんて滅多に使わんことに気づいたわw
2023/01/06(金) 01:05:36.20ID:7HwChuQ+0
>>200
それ、varで定義したらintになってるし、右辺がintになるのは本当だな
で、c#のコンパイラ、縮小変換で切り捨てがないことが確認ができたら、暗黙の縮小変換を許可するっぽいな。

ちゃんとした言語仕様確認しないと何とも言えんが
おそらくコンパイル時に解決可能なことが前提条件じゃないかと推察するが
2023/01/06(金) 10:21:27.99ID:xMgEyxw8r
>>198
組み込み機器相手にしているとよく使う
2023/01/06(金) 10:54:04.53ID:Zk03eeCzM
文字列の中の何文字目に日付があるかを調べたいのですが、
日付の書式としては「2023/01/05(木)」といった感じで固定なものの、
日付の数字は当然日によって違ってくるわけなのでContainsだとちょっとうまくいかないです

いい方法はないでしょうか
2023/01/06(金) 11:05:52.93ID:J1J3+QokM
正規表現でググれ
2023/01/06(金) 12:19:31.93ID:buYHqiH80
>>204
static int IndexOfDateString(string str)
{
const string kDateFormat = "yyyy/MM/dd(ddd)";
int dateLength = kDateFormat.Length - 2;
int index = 0;
while ((index = str.IndexOf(')', index) + 1) >= dateLength)
{
int iStart = index - dateLength;
Console.Out.WriteLine(str.AsSpan(iStart, dateLength));
if (DateTime.TryParseExact(str.AsSpan(iStart, dateLength), kDateFormat, null, default, out var date)) return iStart;
}
return -1;
}
2023/01/06(金) 16:14:10.99ID:Zk03eeCzM
ありがとうございます
参考に(と言うかそのままなのかな?)させてもらいます
208デフォルトの名無しさん (ワッチョイ b6e9-9j0N)
垢版 |
2023/01/06(金) 16:14:19.23ID:RU2dEBn00
WinフォームアプリでgroupBoxをタブみたいに切り替えて使おうと、
コントローラを切り替えるコードを書いたのですが、groupBoxを重ねて実行したら
全てのgroupBoxが一番下のgroupBoxの子になってるようで、思うように表示されませんでした。
groupBoxを、一番下のgroupBoxの子にしない方法はありますでしょうか?
2023/01/06(金) 20:43:15.02ID:LvtbIuXd0
>>208
・・・.Designer.cs を開くと、自動生成したコードが
一番下のgroupBox.Controls.Add(子のgroupBox)
になってないかな?
だとしたら、デザインモードから子のgroupBoxをフォームに貼り付けるとき、
フォーム直下じゃなく、一番下のgroupBoxに貼り付けてると思う

自分なら、Load のタイミングで、任意のgroupBox.Controls.Add(任意の孫コントロール)
を明示的にコーディングする
2023/01/06(金) 21:39:44.23ID:buYHqiH80
>>207
Console.Out.WriteLine(str.AsSpan(iStart, dateLength));
確認用のコード消し忘れたからこれは消しといてOK
2023/01/06(金) 22:12:46.01ID:0EW5INsGM
専ブラでも作るのか?
2023/01/06(金) 22:16:48.35ID:0EW5INsGM
>>200
switch式は左辺参照して型を決める特殊な仕様らしい
int→shortに変えられる詳しい仕様は書かれていないので実装依存になるかも
2023/01/06(金) 22:48:27.26ID:Zd/Zujyt0
>>212
Target typed conditional expression とか言うらしく C# 9.0 で仕様が変わったみたい
ざっくり読んだけどいまいちよくわからん
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/target-typed-conditional-expression
2023/01/06(金) 23:11:40.08ID:i+WCiV6p0
もう誰もついて行けないほどキモい言語になったな
2023/01/06(金) 23:46:18.49ID:lAfbhCFR0
20年間建て増し増改築をくり返してるから。。。
2023/01/07(土) 00:03:23.95ID:14znWkOG0
まぁ、あっても使わなきゃいいだけなんじゃね
C++のような機能性とJavaのような読みやすさを両立してるってことで
2023/01/07(土) 01:49:54.46ID:YilgzCe20
C#ってUnityのせい(おかげ?)で簡単みたいに言われている気がしなくもないけど
まともに使える人は案外少ない印象

そりゃC++とかよりは簡単だろうけど
いきなりスラスラ組めるようになった奴はセンスあると思う
2023/01/07(土) 10:59:31.87ID:r7mle/Qh0
それはC#に限らずオブジェクト指向全般に言える話
最初は誰でも手続きぐちゃぐちゃプログラミングになるからな
2023/01/07(土) 22:36:09.82ID:pHfLuIJC0
C#の言語仕様を拡張してどんどん便利にしても.NETが旧態依然のままでぜんぜん便利にならないから誰も.NETで開発しようなんて思わないんだよな
MSはいい加減.NETそのものやライブラリにお金をかけるべきだわ不便だから誰も使わなくてハウツーやナレッジも少ないからエコシステムが構築されずどんどんC#の人気が落ちてる
JS(TS)やPythonが人気なのはスクリプトだからとか簡単だからとかじゃなくて便利で高機能なパッケージ(ライブラリ)が無料で腐るほどあって人気があるからハウツーやナレッジも豊富でエコシステムが構築されてものすごく良い循環してるからなわけよ
とりあえずいい加減P/Invokeは廃止してMS自らがラッパー提供しろって話なんよなぜ未だにC#でGlobal HookなんかのOSのAPIにアクセスするのにP/Invokeが必要なのかそもそもこれがおかしいと思わんのかな
P/InvokeなんてC/C++理解できんやつには使えるわけがないんだがMAUIとかBlazorとかフロントエンドばかり小手先の改良加えるだけでぜんぜんやる気ないだろそりゃAndroidアプリに頼るしかなくなるわな
2023/01/08(日) 01:34:28.04ID:TcqU+QzpM
その認識は間違ってると思うが…
2023/01/08(日) 02:43:36.44ID:FOdy7Dic0
またランタイムに相当するやつを別にインストールする必要があるのかってところが猛烈にダサいよね
巨大exeの配布とどっちが良いかみたいな時代と逆行した昔話を思い出すよ
結局昔のようにMS主導で強制されるまでは誰も積極的に使わないだろう
2023/01/08(日) 09:40:34.44ID:TcqU+QzpM
C#は実際のアクティブユーザー数は少ない
プログラムが趣味ですと言ってる人の中でC#使ってる人の割合が少ないと言う感覚
更にガチ勢の割合が少ない

当初.netのライブラリが充実していた(GUI除く)ので一般人はOSSやサードパーティー製をなかなか使わない風土になってる
それで開発が少ないしされてもすぐ放置される
jsonライブラリも標準が出てしまった
ユーザーはライブラリ開発しないで提供されるのを待つだけ
ガチ勢が育たない

jsは唯一のwebブラウザ向け言語なのに素では開発しづらいから便利なライブラリが開発され続けてる
ライブラリのみでなくjs自体にトランスパイルされる言語が複数開発されてる

一方C#じゃなければ実現できないことはないから積極的に開発されない

C#の人気が落ちてると感じるのは相対的に他の言語の魅力が上がってるから
と言うより20年使ってたけどC#はホビーユースが中心にもかかわらずMS以外でそんなにC#は重要視されてた時代はない

C#は基本的に想定した以外のAPIは放置されてる
GlobalHookなどは馬鹿避けで馬鹿に触らせると問題が起こるので機能を提供してないものと思われる
2023/01/08(日) 09:47:03.48ID:RamX2q3K0
ほらMAUI君のキチガイムーブのせいでこんなことになってる
2023/01/08(日) 09:48:03.50ID:TcqU+QzpM
>>219
こいつがMAUI君なのか?
2023/01/08(日) 09:56:44.66ID:QVI3ZNoXM
騒ぎに便乗している愉快犯だろうが主張が滅茶苦茶
2023/01/08(日) 10:06:02.24ID:T7l3+Pw00
ヤベぇ奴が2連発
2023/01/08(日) 10:09:17.22ID:TcqU+QzpM
C#は外部ライブラリがあまり開発されてない
純正志向が強い

js,Pythonなどは区別なく使われてる
Rustは標準ライブラリも外部ライブラリ向けに実装部分を差し替えられるように提供されてたりする
コミュニティ提供のrust入門書でも外部の乱数ライブラリを使ってる

.netは純正主義
228デフォルトの名無しさん (ワッチョイ 9301-GR7q)
垢版 |
2023/01/08(日) 10:32:30.16ID:+xzWagUM0
>>227
たしかに.NETの標準ライブラリで何でも出来すぎてOSSが盛んにならないってのはあると思う
ただサイシャープの河合社長だったり有用なOSSライブラリを作ってる人はかなりいる
みんな知らないだけ
229デフォルトの名無しさん (ワッチョイ 9301-GR7q)
垢版 |
2023/01/08(日) 10:34:46.44ID:+xzWagUM0
まさか標準ライブラリの充実がOSSの足枷になってるとはね
たしかに言語仕様的にゴミカスなJSやPythonがこんだけOSSで流行ってるって言うのは割と関係あるな
230デフォルトの名無しさん (ワッチョイ 93ad-U0xt)
垢版 |
2023/01/08(日) 10:56:45.19ID:cWCXtcgI0
仕事で使うなら標準が充実してる環境の方がいい
231デフォルトの名無しさん (ワッチョイ 9301-GR7q)
垢版 |
2023/01/08(日) 11:11:28.09ID:+xzWagUM0
>>230
まぁバージョンが新しい古いとかで動かないとかかなりあるしね
Node.jsなんてそんな感じのグチかなり聞くわ
Sysmem.Text.JsonもNewtonsoft.Jsonのアプデ頻度が高いからしゃーなしに開発されたものらしい
2023/01/08(日) 14:49:48.54ID:TcqU+QzpM
それに .net standardとかPLCとかの問題で非常にライブラリ開発がつらい時期があった
ふざけるなと思ってる人も多かったはず
233デフォルトの名無しさん (スッップ Sdb3-kOMB)
垢版 |
2023/01/08(日) 21:24:57.31ID:vR0OTCC7d
Pythonなんてライブラリのバージョンや本体のバージョンで動かなくなるのでうんざりする
2023/01/08(日) 21:52:10.63ID:PmW37SD40
それはPythonに限らんよReactもFlutterもViteもなんでもそうだ
ちゃんとパッケージを管理できてないお前のスキルが低いだけ
235デフォルトの名無しさん (スッップ Sdb3-kOMB)
垢版 |
2023/01/08(日) 22:19:24.54ID:vR0OTCC7d
>>234
そういうレベルじゃない
ライブラリ同士の整合性問題がC#の比較じゃない
そもそも比較がC#なのに何で他のを持ち出すんだ?
頭悪そう
2023/01/08(日) 22:37:24.96ID:fqXaATjG0
>>235
ここのスレタイ確認しろよ
Pythonを例に挙げている時点でお前も頭悪いよ
237デフォルトの名無しさん (ブーイモ MM35-mEot)
垢版 |
2023/01/08(日) 22:51:16.76ID:Qur7Wt30M
>>235
わかる
あれひどいよな
ものすごくメジャーライブラリでもPythonのバージョン上がると動かなくなって修正に半年とか普通にかかる
リリースされて半年~1年は実質ベータ期間
2023/01/09(月) 00:01:38.16ID:2yNmR2Eh0
他人に期待しても無駄だから安定してるの使えばいいのよ
俺もC#はpowershellとも連携させるから基本OS標準に入ってるバージョンの機能しか使わないし
2023/01/09(月) 16:28:59.82ID:CwlhWpkE0
ライセンス気にせずにExcel操作ライブラリ使うなら、読み取りはExcelDataReader、書き込みはClosedXMLがいいのかね?
EPPlusは商用ライセンス高すぎて使えないわ
240デフォルトの名無しさん (ワッチョイ 515f-DWwd)
垢版 |
2023/01/09(月) 17:37:32.83ID:vMc2E6cN0
SpreadsheetLightってのもある
あと知ってるかもしれんがEPPlusはv4系までは商用でもフリーだぞ
net standard2.0だから今後しばらくは問題ないと思う
241デフォルトの名無しさん (アウアウウー Sa85-DH5p)
垢版 |
2023/01/11(水) 11:19:45.11ID:6xJiw1N1a
単純な真理
馬鹿でも使えるようにすると馬鹿しか使わなくなる
2023/01/11(水) 12:26:53.93ID:mTSuB4YT0
>>241
HTML
はい論破
2023/01/11(水) 12:30:24.34ID:9UsnsdsEp
あれ言語?
レイアウト用のスクリプトじゃね?
2023/01/11(水) 12:31:26.63ID:xxqhJq0+0
>>241
5chのことかぁぁぁ!
2023/01/12(木) 00:35:27.24ID:1+V28XvP0
winformsってみんな普通に使ってるし自分も時々使ってるけどこれといったテキスト売ってないよね
みんななんとなくで習得してる
それでもなんとかなるほど学習コストが低いってことなのかな
2023/01/12(木) 00:39:53.96ID:Ae6OSc1r0
visualstudio使えば、割と簡単とは思うけど
GUI的な考えが分からない奴は結局ちょっと複雑になると作れないんだよなぁ
UI thread的な考えが理解出来ないとUI thread以外でUI操作しようとしたりするしw
2023/01/12(木) 01:42:03.27ID:9BD/EtRG0
>>245
比較対象がWPFなら簡単過ぎるぐらいだな
248デフォルトの名無しさん (テテンテンテン MM4b-JmZ8)
垢版 |
2023/01/13(金) 04:09:28.41ID:i9/MSi6dM
まあアレは直感的にわかりますし……
WPFの方が調べても全然出てこなくて困る、書籍も少ないし
249デフォルトの名無しさん (ワッチョイ b101-tb1I)
垢版 |
2023/01/13(金) 06:37:45.03ID:CqT5d+dn0
@ if ((choice == 2 && player == 2) || (choice == 3 && player == 1))
A if (0 <= xpos && xpos < XMAX && num[xpos] < YMAX)
B board[xpos][num[xpos]++] = player;

C for (x = 0, y = ypos, n = 0; x < XMAX; x++)
D for (x = xpos, y = 0, n = 0; y <= ypos; y++)
E for (x = 0, y = ypos - xpos, n = 0; y < YMAX; x++, y++)
F for (x = xpos - ypos, y = 0, n = 0; x < XMAX; x++, y++)
G for (x = 0, y = xpos + ypos, n = 0; y >= 0; x++, y--)
H for (x = xpos + ypos - YMAX + 1, y = YMAX - 1, n = 0; x < XMAX; x++, y--)
の各条件文内でどーゆー計算、アルゴリズムがされてるか教えてくださる人いますか??
2023/01/13(金) 06:54:01.37ID:QZjdOIAl0
何がわからんのかわからん
課題なら先生に聞け

あーChatGPTなら教えてくれるかもな
251デフォルトの名無しさん (ワッチョイ b101-tb1I)
垢版 |
2023/01/13(金) 09:13:03.94ID:CqT5d+dn0
例えば@だと、&&が論理積、||が論理和ということだと思うんですけど、演算子が分かってもその条件文内で何が行われているかとかが分からないので知りたい状態なんです。。
2023/01/13(金) 09:19:57.40ID:ohfi5XtE0
ベン図でも描けば?
2023/01/13(金) 09:21:26.34ID:r1OLO4Qgp
マジックナンバーイクナイ
2023/01/13(金) 09:25:11.90ID:QZjdOIAl0
>>251
それなら俺らもそれ以上はわからんぞ
変数名をちゃんと意味あるものにしてやって >>253 が言うようにマジックナンバーをなくすと読めるようになる
2023/01/13(金) 10:43:33.37ID:g8ppNh/ZM
>>249
いますかの答えとしてはいない
書いてるコード断片にはアルゴリズムもなにもない
それにこれ多分Cだろ
ここは C#と言う別言語のスレなのですれ違い

これは多分オセロみたいなゲームのコードだろ
縦ラインループ横ラインループと斜めラインループしてる

player1 と player2が対戦して boardが合ってXMAXとYAMXのボード幅ではみ出し判定してる
計算もアルゴリズムも何も感じられない

その前にさあIDEの使い方覚えて一行ずつ動かして何が起こってるか見てみたらいい
初心者の間は状態などを紙にでも書かないと多分わからないよ
256デフォルトの名無しさん (アウアウウー Sa85-DH5p)
垢版 |
2023/01/13(金) 10:54:17.50ID:+TkXA4uqa
マルチで Google Drive のリンクまで晒してるけど
学校名も個人名もばれるから落第だな
下手したら退学
2023/01/13(金) 11:24:47.04ID:2CVvZRFNd
ちゃんと対象言語のスレで聞いてりゃまだ可愛げがあるけど
他言語やVSCodeのスレとかにまでマルチポストだからげんなりするわ
258デフォルトの名無しさん (ブーイモ MM4b-mEot)
垢版 |
2023/01/13(金) 11:42:28.12ID:Qkt7plGTM
半期やってこれがわからないような学生に今どきCを教える大学って終わってるな
259デフォルトの名無しさん (ワッチョイ b101-tb1I)
垢版 |
2023/01/13(金) 12:02:36.51ID:CqT5d+dn0
>>255
ありがとうございます、スレ違いで申し訳ありません。
>>"これは多分オセロみたいなゲームのコードだろ
縦ラインループ横ラインループと斜めラインループしてる"
例えばどの条件文、関数からこれを読み取れたのですか?
2023/01/13(金) 12:09:39.59ID:g8ppNh/ZM
マルチなのか相手して損した
にしてもやる気がない人にはこのレベルはちょっと難しいんだろうなとも思う

二次元配列とボードがイメージとして直結してなくてx、yで盤面の位置を指してることが理解できれば変わるだろうけど
2023/01/13(金) 12:10:56.40ID:g8ppNh/ZM
リロードしてなかったから書き込みが見えてなかったけど
スレ違いなのでもうレスしない
2023/01/13(金) 12:11:52.99ID:w4pCcfcAM
わかんない人をわからせるのは
短文投稿サイトでは難儀なので
元々の問題文を貼ってくれれば
正確な回答をもらえると思いま
2023/01/13(金) 12:13:53.39ID:g8ppNh/ZM
>>262
こら!

スレ違いなので答えてはいけないしどうも他のスレでは張ってあるらしし
2023/01/13(金) 12:42:09.38ID:2CVvZRFNd
5スレマルチポスト
他所でも警告してやって
http://hissi.org/read.php/tech/20230113/Q3FUNWQrZG4w.html
http://hissi.org/read.php/tech/20230113/Q3FUNWQrZG4.html
265デフォルトの名無しさん (ブーイモ MM4b-IdlF)
垢版 |
2023/01/13(金) 22:44:16.91ID:UM8Nby1DM
データテーブルの列名が日本語になってるデータベースと、C#コードを連携します。

データテーブルのデータを保持するクラスを定義する際、同じようにして日本語を使ってフィールドを定義すれば対応関係がよくわかるのですが、英語やローマ字で定義したほうが良いでしょうか。
2023/01/13(金) 22:59:24.65ID:QrXHZOLk0
今開発してるのがまさに日本語カラムばかりなんだけどめっちゃ楽だぞ
ソースコード内でもカラムを示す箇所が視覚的にわかりやすいしインテリセンスでも埋もれない

カルチャー的に受け付けない人はいるだろうけど使ってみると考えも変わる
2023/01/13(金) 23:52:57.11ID:N2c+mgjH0
過去に行政の税システムのソースを見たら変数名が日本語だった。メーカーのPMに「日本語なんすね」と言ったら「間違いを無くすにはもうこれしかないんです」と言っていた。
税の用語は難しく数が多くて計算は複雑で、もし間違えたら記者会見して新聞記事になる。こういう対象にはそれに適した手段を用いるのが肝要だと思った。
2023/01/14(土) 00:37:39.38ID:ISrlGbh20
nameof使えるし日本語フィールド名で良いんじゃない
269デフォルトの名無しさん (ワッチョイ fd7f-PB+X)
垢版 |
2023/01/14(土) 03:37:58.98ID:xHYJkNGt0
>>266
レスありがとうございます。

>インテリセンスでも埋もれない
インスタンス名に続けて、ドットを打ったらインテリセンスで日本語名フィールドが表示されるのですね。

row_日本語の列名 みたいにしてなにか最初にアルファベットで列名に関与していることを示してみようかと思っています。
フィールドでは無意味かな。
でも、クラス名が日本語の場合は、model_日本語名 みたいな感じで最初にアルファベットをつけておくと、
インスタンス化のときにnewによるコンストラクタの呼び出しが便利かもと思っています。

>>267
たしかに。間違いはなくなりそう。日本語から英語に訳すのに時間がとられるし、それで対応関係がわからなくなってしまったら、
まったく無意味ですよね。
私も、日本語でやってみたいと思います。

>>268
https://atmarkit.itmedia.co.jp/ait/articles/1607/20/news026.html によると、
>nameof演算子を使うと、名前空間/型/メソッド/プロパティ/変数などの単純な名前(=名前空間やクラス名などで修飾されていない名前)の文字列が取得できる。

でも、何の役に立つのかピンとこない。
日本語フィールドとどう関係があるの?
2023/01/14(土) 05:06:37.76ID:XX64qgVXH
ひょっとしていまだにDataTable/DataSetを使ってるとか、生のDataReaderでレコードを取り出して1項目ずつフィールドに転記するつもりなんだろうか
EntityFrameworkなりDapperなり使わなきゃだめだよ
DapperでSQLを手書きする前提なら、nameofを使ってこんな感じ

public class T_テーブル1 {
 public string カラム1 { get; set; }
 public string カラム2 { get; set; }
 public string カラム3 { get; set; }
}

var sql1 = $"SELECT * FROM {nameof(T_テーブル1)} WHERE {nameof(T_テーブル1.カラム1)}=@val";
T_テーブル1? rec = connection.QueryFirstOrDefault<T_テーブル1>(sql, new { val = "aaa" });

string sql2 = $"INSERT INTO {nameof(T_テーブル1)}"
+ $"({nameof(T_テーブル1.カラム1)}, {nameof(T_テーブル1.カラム2)},{nameof(T_テーブル1.カラム3)})"
+ $"VALUES(@{nameof(T_テーブル1.カラム1)}, @{nameof(T_テーブル1.カラム2)}, @{nameof(T_テーブル1.カラム3)})"
connection.Execute(sql2, rec);

個人的にはクラス名(テーブル名)・プロパティ名(カラム名)については
たとえC#の命名規約に反しようと全角半角・英大文字小文字含めDB定義通りにして
SQL文組み立てにフル活用できるようにする
2023/01/14(土) 08:03:33.86ID:YVgT972+0
テーブル1とテーブル2で同じカラム名があるとダルそうですね
2023/01/14(土) 11:14:54.89ID:1tybvzL1d
テーブル名やカラム名そのままならたぶん大丈夫だとは思うけど
カッコ系や「・」なんかの全角記号がほとんど使えないのは一応注意を
273デフォルトの名無しさん (ワッチョイ fd7f-fQuj)
垢版 |
2023/01/14(土) 14:27:07.61ID:xHYJkNGt0
>>270
レスありがとうございます。
お察しの通り、datareaderをforでぐるぐる回しながら、エンティティにデータ格納しようとしています。
ほとんどストアドプロシジャによる処理手順があり、これを実行した結果をC#で扱いたいんです。
ストアドプロシジャがあるのにEFを使う話は書籍にも見られません。

Dapperは全く勉強したことないので全然知りませんでした。
でも、そうやってnameofを使うわけなのですね。
優位性や適応についても知りたくなりました。
274デフォルトの名無しさん (ワッチョイ fd7f-fQuj)
垢版 |
2023/01/14(土) 14:30:25.35ID:xHYJkNGt0
>>271
同じ名前のフィールドができるからですか?
でも異なるタイプのエンティティなら問題ないのかなと思います。

>>272
ありがとうございます。
気をつけます。
275デフォルトの名無しさん (ワッチョイ fd7f-fQuj)
垢版 |
2023/01/14(土) 14:40:51.64ID:xHYJkNGt0
>>273
>でも、そうやってnameofを使うわけなのですね。

文字列内(今回はSQL文)に、クラスのフィールド名を組み込みたいときに使うと良いということがよくわかりました。
すると、その場合、クラス名、フィールド名は、データベースの列名に一致させておくことが必須ですね。
どうもありがとうございます。
2023/01/14(土) 21:37:09.12ID:JGEy8Mb7H
ちょっとまって、フィールド名とカラム名を一致させるのはnameofのためじゃなくて
EFやDapperでもって取得したレコードや更新値を全レコード/全カラム自動マッピングさせるためだよ
いまどき手動でDataReaderから1項目ずつ値転記したりDbCommand/DbParameterをいちいち指定したりなんて
もはや許されない前時代的老害コーディングだからやっちゃだめ
あとEFでのストアド実行ならふつうにSqlQuery()とかの生クエリで出来ると思う
2023/01/14(土) 23:34:32.45ID:v+aDVA7Ga
SQL 文を組み立てるのは、数十年前のやり方

Ruby on Rails では、1対1・1対多・多対多など、表同士の関連を定義する
2023/01/15(日) 00:10:03.35ID:GqZOBUMQ0
HttpClientでPostAsyncするときにユーザーエージェントを指定したい時はDefaultHeadersをいじるしかないのでしょうか。
それをするとマルチスレッドで同時に別のユーザーエージェントで送りたいときに独自で排他制御しないといけない気がします。
かと言ってSendAsyncを使うと今度はContent-Typeをapplication/x-www-form-urlencodedにしたくても勝手に後ろに文字コードの;uft-8などが付いてきて困っています。
2023/01/15(日) 00:11:09.01ID:GqZOBUMQ0
記載し忘れましたがHttpClientはひとつのオブジェクトを用意して同時に使います。
2023/01/15(日) 00:44:00.15ID:pBiKKGenM
WebRequest、WebClient、ServicePoint は廃止されている
[アーティクル]
2023/01/05

https://learn.microsoft.com/ja-jp/dotnet/core/compatibility/networking/6.0/webrequest-deprecated

> WebRequest、WebClient、ServicePoint の各クラスは古い形式としてマークされており、コンパイル時に SYSLIB0014 警告が生成されます。
2023/01/15(日) 00:45:46.03ID:pBiKKGenM
勘違いして全然違うのを投入した
2023/01/15(日) 00:56:53.85ID:AxXMsEIz0
FormUrlEncodedContentを持ったHttpRequestMessageをSendAsyncでPOSTしても
Content-Type: application/x-www-form-urlencoded
だけだったけど
.NET7, .NET Fx 4.8両方で
2023/01/15(日) 01:00:32.76ID:GqZOBUMQ0
すみません、また記載し忘れていましたがFormUrlEncodedConentを使用すると文字コードをShiftJISにしたいのですができず困っています。
あとはまだ試してしないのですがスペースが%20になってしまうとのことでそちらについても都合が悪いです。
2023/01/15(日) 01:01:36.57ID:GqZOBUMQ0
%20ではなく+です
285デフォルトの名無しさん (ワッチョイ cd35-5Koo)
垢版 |
2023/01/15(日) 01:08:45.78ID:GqZOBUMQ0
HttpContentというクラスを独自にはせいさせるとできるかもしれないです
明日ためしてみます
2023/01/15(日) 01:18:15.52ID:AxXMsEIz0
https://stackoverflow.com/questions/12390511/httpclient-formurlencodedcontent-encoding
HttpContentから派生じゃなくてByteArrayContentを直に使えばいいらしいよ
287デフォルトの名無しさん (ワッチョイ cd35-5Koo)
垢版 |
2023/01/15(日) 01:20:48.86ID:GqZOBUMQ0
ByteArrayも試したのですが何かしらの問題があったような気が…
すみません、明日さいど確認してみます
2023/01/15(日) 01:23:56.33ID:R4vpna1L0
仕事かな
2023/01/15(日) 01:41:17.79ID:pBiKKGenM
HttpClientのサードパーティー製をNugetで探すと上位の方にかなりパンチの効いたのが出てくる
290デフォルトの名無しさん (スッップ Sdea-AEFQ)
垢版 |
2023/01/15(日) 02:02:46.64ID:C2q54ZnWd
>>277
業務を知らないRuby馬鹿
291デフォルトの名無しさん (ワッチョイ fd7f-sAzJ)
垢版 |
2023/01/15(日) 05:17:18.02ID:14wHoUoo0
>>276
ありがとうございます。
EFもかなり発展しているということなのですね。
以前はまだ未完成みたいな感じだったので、利用を躊躇しておりました。

ストアドの実行もEFでやってみたいと思います。
ただEFについては勉強が必要なので、少し時間がかかりそうです。

DataReaderはVBのときからやっているので、やっぱりいじり方がわかりやすいんですね。

>>277
表同士の結合は、ストアドプロシージャでやっては今の時代はダメなんですかね。
292デフォルトの名無しさん (ワッチョイ fd7f-sAzJ)
垢版 |
2023/01/15(日) 05:21:23.11ID:14wHoUoo0
>>291
いちおう、ドメイン駆動設計なども学びはしました。
リポジトリ、モデル、アプリケーション、プレゼンに分けて構築しています。

でも、効率が良さそうなのはわかりますが、EFとかはどうも苦手意識があって。
いつか、慣れていく必要がありそうだとは思っています。
2023/01/15(日) 05:25:16.63ID:I1C/y1wm0
DB畑なら特定の環境に依存する中途半端なことするより普通にSQL文使うのを選ぶと思うけど
2023/01/15(日) 05:54:23.73ID:r5uLxMWea
Ruby on Rails では、各データベース(DB)の方言に依存しないように、
O/R マッパーで、3大DB のSQLite, PostgreSQL, MySQL を使う

多くはPostgreSQLだから、AWS Aurora とも互換性ある

O/R マッパーを使わないと、各列の型も異なる
2023/01/15(日) 09:53:02.70ID:BFqmBeHGd
>>291
いきなりRailsを持ち出す奴は構ってはいけない
この板の鉄則
296デフォルトの名無しさん (ブーイモ MMde-laSj)
垢版 |
2023/01/15(日) 11:50:48.71ID:AgwxnFRxM
>>292
リポジトリのインターフェースがきちんと定義されててDBの実装に依存する部分が全てリポジトリの実装クラス側に隠蔽されてるなら中身は好きにすりゃ良い
後でリファクタリングするのも大した手間じゃない

リポジトリから返される型の名前を変更したらSQL文も動かなくなるみたいな実装は依存性を分離できてないから基本的には良くない設計
(良くない設計だけど開発効率を重視して採用することはある)
297デフォルトの名無しさん
垢版 |
2023/01/15(日) 13:38:07.36ID:GqZOBUMQ0
ByteArrayContentの件ですが、ほかのヘッダーと同様にHttpRequestMessage.Headers プロパティでContent-Typeを設定していましたが、これではContent-Typeだけリクエスト文に現れませんでした。
しかし、ByteArrayContentのHttpContentHeaders.ContentType プロパティに設定することで無事、目的のContent-Typeが送信されるようになりました。
ご協力ありがとうございました。
2023/01/15(日) 17:02:40.66ID:pBiKKGenM
おもしろhttpclient代替ライブラリの出番はなかったと
残念
299デフォルトの名無しさん (ブーイモ MMde-fQuj)
垢版 |
2023/01/15(日) 17:03:22.46ID:i8CV0envM
>>296
>リポジトリのインターフェースがきちんと定義されてて

データベースなどの入れ替えに対応させるためですね。

>リポジトリから返される型の名前を変更したらSQL文も動かなくなるみたいな実装

これはいまいちピンとこないです。
どういう問題を持っているのですか。
2023/01/15(日) 17:27:16.78ID:pBiKKGenM
動かない時点で問題だろ
依存を切ってるはずなのに
301デフォルトの名無しさん (ブーイモ MMde-fQuj)
垢版 |
2023/01/15(日) 18:01:55.48ID:i8CV0envM
>>299について、>>300さんへ

言い方がまずかったです。

>リポジトリから返される型の名前を変更したらSQL文も動かなくなるみたいな実装

これがどういう実装になってるのかなと。

リポジトリから返される型とは、モデルクラスでしょう。エンティティのことだと思います。

この型の名前を変えるとは、モデルクラスの名を変えるということですかね。
単純にかんがえると、コンパイル段階でエラーになると思います。

SQL文も動かなくなるとは、リポジトリがエンティティを受け入れる段階をいうのかな。

でも、リポジトリの永続化メソッドの引数の型と、エンティティの型が合わないという話なら、やはりコンパイルでエラーになる。

こういう話ではないのかな?
302デフォルトの名無しさん (ブーイモ MMde-laSj)
垢版 |
2023/01/15(日) 18:44:05.72ID:Tpvfm3sDM
>>299
ここにEF使ったリポジトリとSqlCommandやDataReaderを使ったリポジトリの両方を実装してるサンプルであるから見てみるといい
https://www.shoeisha.co.jp/book/download/9784798150727/detail

>>270が動かなくなる実装の一例
2023/01/15(日) 19:07:02.30ID:pBiKKGenM
>>301
なんで段落じゃなくて毎回改行してんの?
2023/01/15(日) 19:07:55.22ID:IyrCQBsgr
>>270が動かなくなるって具体的にどういうこと?
カラムnを実際のテーブルの列名と違う名前にしようとしたとかそういうこと?
2023/01/15(日) 20:23:54.22ID:k2EAOSQD0
正直、不必要なレベルの過剰な依存性の排除だと思うけどな
もしやるならDBを使わない選択が必要な程の
2023/01/16(月) 07:18:54.98ID:3crLqciiM
>>276
うーん?
どこかでやらなきゃいけないのを
先延ばしにしただけのような?

俺はその構造になんの意味も感じなかった
なぜなら絶対にどこかで指定する必要があってその場所が変わるだけだから
間に一つ挟んだら取り決めが増えるだけで何も変わらんよ
2023/01/16(月) 09:06:23.76ID:15MDnu2bd
>>302
>>270はDapperを使ったコードだけどEFやSqlCommandの例とどんな関係が?
2023/01/17(火) 03:21:23.70ID:Pa/g9qeO0
ASP.NETの勉強を始めました。具体的にはASP.NET MVC5 実践プログラミングって本を使っています。
その中でentity frameworkを使ってdbcontextをうにゃうにゃしてデバッグ実行時にデータベースが制作されるようにしてページに表示して…みたいなことをやりました。

それでmdfファイルってのが出来あがってたのですがそれについて質問です。
これが出来上がったデータベースであって、sqlserverがデータを保存する形式ってのは分かりました。
これつまりC#(entity framework?)サイドからするとsqlserverは別に起動してなくてもデータベース本体だけあれば読み込めるということなんでしょうか。
それとも起動時に勝手に裏でsqlserverが立ち上がってたりするのでしょうか。
一応本の流れにそってSQL Express LocalDB edition 11.0なるものはインストールしています。

すいませんこれまでの開発でmanagement studio経由でいじるとかそれくらいしか経験無いんでよく分かってないです。
厳密にはC#の質問じゃないと思うんですけどよろしくお願いします。
309デフォルトの名無しさん (ワッチョイ ca01-FIs7)
垢版 |
2023/01/17(火) 03:46:50.51ID:g2NvLQQ30
>>308
すでに立ち上がってるSQLServerと通信する形となります
SQLServerが動いてなかったらもちろん意味を成しません
アプリから処理を呼び出し→SQLServerに接続→SQLServerがmdfファイルを編集
という感じだと思います
310デフォルトの名無しさん (ワッチョイ ca01-FIs7)
垢版 |
2023/01/17(火) 03:48:48.44ID:g2NvLQQ30
SQLServerは起動しっぱなしですね
応答により電源がついたり消えたりするという形ではないです
2023/01/17(火) 07:20:20.73ID:s3m6BVtYM
LANケーブル抜けたら?
2023/01/17(火) 09:30:13.79ID:mymdZu3lM
>>311
差し直しましょう
2023/01/17(火) 09:37:04.80ID:FlIYwx2Q0
神に祈れば掃除のおばちゃんがエアコンを切らない
2023/01/17(火) 21:28:25.23ID:Pa/g9qeO0
>>309
ありがとうございました。sqlserverちゃんと起動してるかとか確認しないとだめですね
2023/01/18(水) 00:09:04.38ID:hk0QW4ON0
あの紫の本かな 現状MVCのテキストってあれくらいしかないよね
ちょこっと読んで放置してたけど読み直すか
2023/01/18(水) 00:28:03.93ID:3sYvYO2/0
>>314
CompactとかLocalDBとかは常にインスタンスが上がってるような形じゃないけどな
2023/01/18(水) 08:28:02.80ID:rq0JYZ+R0
>>312
再接続するプログラムになってるかな?
318デフォルトの名無しさん (ワッチョイ ca01-FIs7)
垢版 |
2023/01/18(水) 08:53:04.91ID:vYh8JMIk0
>>314
( ̄ー ̄)bグッ!
2023/01/18(水) 11:14:23.74ID:2vbdQEqi0
LANケーブルを指しなおすプログラム?
320デフォルトの名無しさん (アウアウウー Sa91-jIAo)
垢版 |
2023/01/18(水) 12:06:41.51ID:wDe6wdJea
掃除のおばちゃんを制御するプログラムを弄れ
2023/01/18(水) 12:18:27.54ID:LLGrNdcqa
再接続というのは物理的に切断されたものが復旧した時に再度コネクションすることだぞここでは
2023/01/18(水) 12:39:01.52ID:3lDNp2YJa
>>316
そいつらはインプロセスだからある意味呼び出し側が起動してたらLocalDBのプロセスも上がってるってことだが
それ以前にCompactはもう忘れたけどLocalDBはSQL-Serverと同じでDBMSの起動とインスタンスの起動は違うぞ
SqlLocalDB.exe start / stop でインスタンスを起動/停止できる
https://learn.microsoft.com/ja-jp/sql/relational-databases/express-localdb-instance-apis/command-line-management-tool-sqllocaldb-exe?view=sql-server-ver16
2023/01/18(水) 13:27:16.30ID:igIZvBCZ0
>応答により電源がついたり消えたりするという形ではないです

ここが分からんw
鯖が物理的に別にあるってことかな
2023/01/18(水) 14:36:35.17ID:3sYvYO2/0
>>322
LocalDBはインプロセスじゃない
インスタンス事前に起動させて複数プロセスからアクセスとかできなくはない
まあ大概は自動でインスタンス上がるんだが、手動でもできるってだけ

つかその文脈、DBMS(の起動)とインスタンス(の起動)ってどういう使い分けなの?
2023/01/18(水) 15:18:33.28ID:UiCoGtZYd
selenium webdriverのC#版の話題ってここでいいですか?
操作対象のdriverオブジェクトから、
Winformsで言う普通のウィンドウハンドル(NativeWindowHandle)を取得したいんですが、driver.CurrentWindowHandleプロパティで得られる値はselenium専用のウィンドウ識別用の文字列のようで使えませんでした。
stackoverflowとか見てもプロセスからタイトル名で探索する、みたいないまいち冴えない方法しか何故か見つかりませんでした。
ブラウザを操作してるのに一意なハンドル情報を得る方法が無いなんて考え難いので、何か方法はあると踏んでるのですが、たどり着きませんでした。上の冴えない方法より洗練された方法があれば教えて下さい。
2023/01/18(水) 15:20:53.55ID:Hg1RmCSYa
>>324
> LocalDBはインプロセスじゃない
すまん、ボケてたわ
単にリモート接続できないSQL-Serverだったな

> つかその文脈、DBMS(の起動)とインスタンス(の起動)ってどういう使い分けなの?
DBMSはSQL Server VSS Writerサービス(sqlwriter.exe)の話
インスタンスはリンク先読めばわかる
複数インスタンスとか使ったことないのかな?
2023/01/18(水) 16:15:25.52ID:/+rmiMsB0
>>325
Seleniumはマルチプラットフォームなんで
Windowsローカルの話なんて知らんというのはごく当たり前のように思うが
2023/01/18(水) 16:36:04.45ID:oNP58X/Tr
>>325
以前に探して見つからなかった記憶
そのときはやりたいことがウィンドウの最小化ぐらいだったんで
RemoteWebDriver.Manage().Window.Minimize()
を探し出して解決
2023/01/18(水) 20:05:06.38ID:UiCoGtZYd
>>327
>>328
ありがとうございます。参考になりました。
switchto~で何か出来そうな気もしましたが、
いまいち動きが読めないので今回は大人しく冴えない方法を使う事にします。
2023/01/18(水) 20:57:22.30ID:3sYvYO2/0
>>326
WriterをしてDBMSとか言うやつは初めて見たわ
通常の文脈であればDBMSはDBエンジンをメインとした一式で
SQL Serverにおいてはまさにインスタンスなんだが

つかSQL ServerのVSS Writerって、べつに必須じゃなかった気がするけど
シャドウコピーできなくなるからオンラインバックアップ取れないだけで
いわゆるlazy writerみたいなDB Writerと勘違いしてるのかね
2023/01/18(水) 21:17:36.32ID:q1S59c8f0
>>330
> つかSQL ServerのVSS Writerって、べつに必須じゃなかった気がするけど
SQL-Server VSS Writer とシャドーコピーサービスは別物だぞ
あとSQL-Serverのインスタンスはプロセスとは関係ない
sqllocaldb create\|c "instance name" [version-number] [-s]
とかで増やすこともできるけど増やしてもプロセスやスレッドは増えないよ
ちなみにOracleでもインスタンスの用語はデータベースファイルセットの意味で使われてる
https://docs.oracle.com/cd/F32587_01/cncpt/oracle-database-instance.html#GUID-67247052-CE3F-44D2-BA3E-7067DEF4B6D5
2023/01/18(水) 22:36:22.92ID:3sYvYO2/0
>>331
シャドウコピーはOSが提供してる機能のことで、VSS WriterはSQL Serverがそれを使うためのサービスな

>SQL-Serverのインスタンスはプロセスとは関係ない
SQL Serverのインスタンスの実態はsqlserver.exeってプロセスだが?
ローカルDBでも、インスタンスごとにsqlserver.exeってプロセスが動くんだが?
2023/01/25(水) 14:22:50.07ID:VgR3j9B70
C#のexeやdllはILマシン語にコンパイルされるというのを知りました
でも例えばCのexeはそのCPUに対応するマシン語になりますよね
ですけどC#のexeは一旦JITを通して実行される
この一度通すっていうのをどうやって判断しているんでしょうか
C#のexeをCのexeみたいに直接実行しようとして実行できねーよってならないのはどういう仕組みなんでしょうか
334デフォルトの名無しさん (ブーイモ MM87-a62K)
垢版 |
2023/01/25(水) 14:57:50.37ID:cPQ/8DlSM
C#のexeに「僕に含まれてるデータをJITを通して実行してね」て、CPUに対応するマシン語で書いてあるんじゃね?
2023/01/25(水) 14:58:14.37ID:KPuKutaL0
>>333
atmarkit.itmedia.co.jp/fdotnet/dotnetwork/index/index.html
古い記事だが基本は変わってない
2023/01/25(水) 15:01:44.79ID:UaGoD80Hp
8086系は相対ジャンプや相対コールが無かったから
プログラム実行前にアドレス解決しなきゃならないとか
色々前処理が必要だったんだ
その延長で前処理に色々やらせる処理を追加してるなんて
普通にやっているんだよなぁ
337デフォルトの名無しさん (ワッチョイ cfbb-loBM)
垢版 |
2023/01/25(水) 15:09:07.39ID:YO+oGQTm0
C#が関係なくなっちゃうけど、主要Linux系OSは同じような仕組みで他のCPU用の実行ファイルとかまで動いちゃう
2023/01/25(水) 16:41:58.38ID:SH9Oxo2M0
VC# datagridviewにて
CurrentCellChangedイベントで選択セルの結果を取得したいと思いました。
(rowfilterなどで変化した場合もとりたいため、clickイベントにしませんでした)

しかし、DBから読み込んだ時点ですぐ発生するイベントにて
System.NullReferenceExceptionがでます。

CurrentCell.Value == null で判断できるのかと思いましたが違うようでした。
データがなかったときに何もしないというコードはどう書くべきなのでしょうか。

今までPHPで簡単なものを作っておりましたが、
コントロールプロパティやイベントが何を返してて、
どう対処するのかが基礎的なものがわかりません。
nullが返ってくるんだから if nullじゃないの?というのが間違ってる...のでしょうか?

https://ideone.com/J0iDmr
2023/01/25(水) 17:00:33.96ID:VgR3j9B70
>>335
あーこれは本当に素晴らしい記事でした。ありがとうございました。
windowsローダーとかPEフォーマットとかまーったく知らなかったですね。機械語の塊の実行ファイルをOSが読んでいくくらいにしか思ってませんでした。これやっぱ常識なんですかね。
C#の本読んでも当たり前のようにCLRとか出てきてよくわかんねぇとかなってましたけどこれが前提知識ならそりゃ分からんわってなりました。
2023/01/25(水) 17:49:01.17ID:+bDum9h60
>>338
他のクラスでも同じだがCurrentCell.Value == nullの前にCurrentCell== nullを判定しないとnullに属するメンバを指定したら存在するはずがないのでエラーになる
if (dgv.CurrentCell== null || dgv.CurrentCell.Value == null)
{
return;
}
2023/01/25(水) 17:56:26.24ID:Q2YcVXM80
>>338
VSでデバッグ実行したら、例外が出たときにそこで止まって発生した行が表示されるよね
そこでローカルウィンドウとかでどの変数に何が格納されているか確認するといいよ
2023/01/25(水) 17:59:52.43ID:SH9Oxo2M0
>>340
ありがとうございます!!

>DataGridView.CurrentCell.get が null を返しました

おかげさまでようやく
このエラーメッセージが何を言いたいのか理解できました。
2023/01/25(水) 18:01:47.91ID:E6MdhQPL0
.NET Frameworkランタイム入れていない
古いWindowsで開くと形式がおかしいとか言われたはず
2023/01/25(水) 18:03:19.22ID:SH9Oxo2M0
>>341
ありがとうございます!!

いま改めて見たら
dgv.CurrentCellがnull であって
dgv.CurrentCell.value ではなかったです。

この違いにまったく気づいてなく
頭をかかえていました。
2023/01/25(水) 22:33:14.66ID:VgR3j9B70
datagridviewは本当に色々とめんどくさいよね
起きるイベントの順番とかタイミングとかカオスでバグが出まくる
346デフォルトの名無しさん (スッップ Sd1f-RQPf)
垢版 |
2023/01/26(木) 01:02:50.84ID:41WP6aJtd
>>345
お前が馬鹿なだけ
2023/01/26(木) 22:49:39.84ID:lq03KzKz0
多分なんちゃらview全般に言えるのでは
2023/01/27(金) 17:54:28.03ID:taOXdrfWM
別に変なことしたくねーのに
変なことしたいでしょ?
って前提で作られててな
微妙なイベントの順番をハンドリングしないと普通のことも
できないのは正直クソだと思う
2023/01/28(土) 13:20:46.28ID:I9B5TSew0
シンプルなテーブルを作るにあたりDataGridViewとListViewどっち使うか毎度悩む
そしてこいつらは行や列の結合セルを作れない事に気付いてTableLayoutPanelに移行しようとするもこっちはこっちでデータとのバインディングが面倒で断念
最終的にはただのControlクラスを継承したまっさらな白紙にOnPaintで自力描画する事に落ち着くのである
350デフォルトの名無しさん (ワッチョイ 8754-QtSo)
垢版 |
2023/01/28(土) 14:52:36.43ID:iXjFLTNM0
null 許容参照型について教えて下さい。

class Person
{
// null 非許容だと警告が表示されるので、null 許容にしています。
public string? Name { get; set; }
}

上記のケースで、null 非許容のまま警告を回避する為に、プロパティ宣言時に、下記のようにしようと考えています。
public string Name { get; set; } = string.Empty;
ただ、Name プロパティを参照する時に求める要件は「null でない事」ではなく「人名が代入されている事」なので、
string.Empty で null 警告を回避しても、string.Empty は人名ではない為、意味がありません。

この場合、Name を参照する側では、
if ( person.Name != null )
をチェックするか
if ( person.Name != string.Empty )
をチェックするかが変わるだけで、null 許容参照型にするメリットを感じないのですが、メリットはあるのでしょうか?
2023/01/28(土) 15:02:12.75ID:acHVjvs20
ケースによるが、コンストラクタを用意して

public Person(string name)
{
Name=name;
}
2023/01/28(土) 15:03:19.66ID:acHVjvs20
とやって、全てのオブジェクトには名前があるように保証できるようにするのが俺のやり方だわ
2023/01/28(土) 16:32:58.07ID:SSo2rJoBd
>>349
結合セルもできないのか
そういうの考えるともう枯れたHTMLで画面作る方が楽だなーって思う
2023/01/28(土) 16:37:13.72ID:qgiHv5Wf0
>>350
空文字は許容されてなくてnull関連の演算子も使わないならどっちでもいいんじゃね
2023/01/28(土) 18:21:00.62ID:DKSWYQK4a
>>350
null許容の場合は空文字とnull両方を考慮しないといけないだろう
356デフォルトの名無しさん (アウアウウー Sa47-lxhl)
垢版 |
2023/01/29(日) 06:55:37.48ID:Tvr/A6EZa
>>349
WPFでやれば楽よ
2023/01/29(日) 10:10:30.46ID:Bt1+Pj/S0
>>349
個人開発なら構わんが、会社でそういう糞コントロール作るなよ
保守するのが面倒くさい
2023/01/29(日) 10:26:49.48ID:tvJJpmA20
>>349
最近気づいたけど
セルの変更しないなら
いっそピクチャーボックスもあり
スクロール制御しないと駄目だけど
2023/01/29(日) 11:24:21.80ID:1KUwXnGJ0
大昔からString.IsNullOrWhiteSpaceでチェックしていたから気にしたことなかったわ
2023/01/30(月) 22:17:23.47ID:4W3kbClF0
JsonSerializerでdynamic型の配列に異なる型のオブジェクトを混在させたのもをSerializeしてからDeserializeするときに型を復元するにはどうすればよいでしょうか。
2023/01/30(月) 22:26:24.35ID:rXBejGf/a
キャスト
2023/01/30(月) 23:02:54.21ID:4W3kbClF0
キャストする型が不定なので保持しておきたいのですがそのような機能はないでしょうか。
参照関係はメタデータとして保持できるのですが…

なければ独自で型情報を保持するしかないと思うのですが、List<Hoge>のような型が存在する場合にGetType().Nameを読み取ってもList`1のような謎の文字列になってしまい…
2023/01/30(月) 23:08:33.77ID:oFd10dGn0
普通はtypeofとかisとか使うんじゃね?
2023/01/30(月) 23:10:20.10ID:oFd10dGn0
object型で何で扱って、typeofとかisとか使ってマッチさせるんじゃねえの?
2023/01/30(月) 23:12:24.68ID:4W3kbClF0
全てのパターンの型でマッチするものを探すようなコードを実装するということでしょうか。
汎用的なものは難しいですかね
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
パンチが利いてるね

このサイトの方法は全然オススメしない
江戸時代の庶民みたいなレベル
見るだけ損だと思う
2023/02/18(土) 15:28:18.46ID:fnNhhYD/0
>>466
正規の方法教えて頂けませんか?
2023/02/18(土) 15:50:38.36ID:XcWpKhdd0
>>465
長さが同じ書き換え以外はファイル全体が書き換わることになるし
DB使わず簡易的にやるなら>>462は普通だね
2023/02/18(土) 15:53:03.57ID:fnNhhYD/0
>>468
お手数ですがコードを教えてください
2023/02/18(土) 15:57:01.92ID:R9Vinbrr0
>>469
この程度自分でなんとかできないのであればお前にはプログラムは無理だよ
2023/02/18(土) 15:57:49.83ID:5dir24/00
>>469
まず上級編を読むといいよ
2023/02/18(土) 16:09:56.65ID:OMHBdk/g0
ここは宿題スレじゃないから「こんなコード書いてください」は違うよな
書いてくれる人はいるかもしれないけど、見た人は大体反感覚える
自分でできるだけやったソース出したら協力してくれる人は増えると思うよ
2023/02/18(土) 16:19:33.83ID:fnNhhYD/0
分かりました。
2023/02/18(土) 16:34:11.76ID:A9MS6Sst0
>>471
そのサイトに応用編でIDパスワードの登録ってのがあったが、
こっちのほうが更におかしかった
2023/02/18(土) 18:14:37.65ID:qdNpud3sd
お題のコードがひどすぎてツッコミが追いつかない
>>458に必要なのはより良い初心者向けチュートリアル
2023/02/18(土) 18:18:28.34ID:75y5ggicp
CsvHelper使えば?
2023/02/18(土) 18:21:04.78ID:WdMwIaAN0
質問です

int? a=1;
int b=a; したいときに
(int)a と a??0 のどちらが速いでしょうか?
2023/02/18(土) 18:29:13.50ID:75y5ggicp
そんな速度気にするより、見やすい分かりやすいコード書く事に集中しろよw
2023/02/18(土) 18:42:24.23ID:yJEVDz2HM
どこの誰かもわからん奴らが後者が速いとか言ったらこいつは鵜呑みにすんのかな
質問してる時間あるならStopwatchなり使って実際に計測すりゃすぐだろうに
2023/02/18(土) 19:42:25.39ID:kZezo40O0
>>477
いまどきの実行環境でそれだけ比べて有意な差が出るとは思えんが
そもそもそのコード、同じ内容じゃないし
普通はb = a.Valueじゃないのかね

まあ、b=1が早いと思うよ
2023/02/18(土) 19:53:20.51ID:X2EPWVH00
速度測ったりアセンブリコード見れば判る事を聞く奴は元々大して興味がないんだと思ってる
こういう馬鹿に真面目に答えても実際に役に立つ事はない
2023/02/18(土) 20:09:36.48ID:5MvUkgOt0
速度に関しては実際に動かす環境でないと意味がない場合が多くてな
お前の使ってるデバイスの割り込み頻度次第だろ
的な
483デフォルトの名無しさん (ワッチョイ b5ad-t6hg)
垢版 |
2023/02/18(土) 21:04:23.95ID:UuNuiTTV0
開発環境という点では
C#は圧倒的だよね。
VB関数も使い放題で、拡張性が凄い。
.Net環境を使えるし。

無料でSqlServerもつかえる。
Visual Studio Communityも無料。

いうことなしの環境。
なによりネット環境と相性が最善。
484デフォルトの名無しさん (ワッチョイ b5ad-t6hg)
垢版 |
2023/02/18(土) 21:05:56.57ID:UuNuiTTV0
あと検索するとDB接続・更新・照会・新規・削除の
のプログラム例もたくさんある。

要するに無料で独学でできる。
2023/02/18(土) 21:20:45.33ID:PskXhabCd
ID:UuNuiTTV0

馬鹿の見える範囲は狭い例
2023/02/18(土) 22:00:00.23ID:c4QxGie20
まあ圧倒的は言い過ぎだと思うけどトップクラスなのは事実だろ
487デフォルトの名無しさん (ワンミングク MMa3-AouJ)
垢版 |
2023/02/18(土) 22:04:20.16ID:+wfi3dFnM
勘違い、間違いばかりで思い込んだ頭の弱い人なんだろう 知的障害者とか
2023/02/18(土) 22:04:41.25ID:D16KU2+t0
どうしてもCSVが必要なケースを除いて、JSON or SQLite が無難
2023/02/18(土) 22:06:22.32ID:BZOEQAJC0
唐突に2つ前の話題のレスする奴なんなの
2023/02/18(土) 22:15:18.31ID:D16KU2+t0
初心者はいきなりナニカを1から書くのではなく、既存の(可能であれば普段自分が利用している)FLOSSのリポジトリを持ってきて、自分好みに「改造」するところからはじめた方がいい
アカデミックに学び直すのは、あれこれ一通りできるようになって「オレは雰囲気でC#を書いている」感覚を覚えてからで十分
2023/02/18(土) 22:19:41.23ID:5MvUkgOt0
>>490
言語博士になんてなったって仕方ないし
そもそも基本になるソフトウェア工学が腐ってるから学ぶのは反対
そのせいか言語博士にはバカが多い
知識はあるけどアプリを作るのはヘタクソみたいなやつ多い

C言語ですべてが完成されている
それ以降はゴミ
2023/02/18(土) 22:28:13.30ID:X2EPWVH00
今時そんなまともに文字列扱えない言語出されても
2023/02/18(土) 22:31:22.74ID:5MvUkgOt0
>>492
一番綺麗に扱えるじゃん
表示さえしなければ(笑)

まあ、それは置いておいて
c#のC言語の部分だけ使うと
問題が起きない
2023/02/18(土) 22:38:46.85ID:CvraI+tp0
C#のC言語部分という謎ワードw
2023/02/18(土) 22:54:57.66ID:5F4IL/7Ca
>>462
教えて
2023/02/18(土) 22:58:00.41ID:CvraI+tp0
csv言ってるけどファイルフォーマットの定義も無いのに大丈夫?
csvって昔から使われるけど決まった定義無いから亜種が一杯あるんだよな

>>495
NuGetでCSVHelperとかCSVReaderとかCSVParserとかで検索しろよ
2023/02/18(土) 22:59:37.10ID:X2EPWVH00
RFCはあるだろ
2023/02/18(土) 22:59:52.80ID:CvraI+tp0
データに改行が含まれてるとかそういうの有るか考慮しろよ

個人的おすすめはきっちりトークナイザーとかでトークンに区切って処理してる系
2023/02/18(土) 23:01:01.69ID:sqdUX6SUM
カオスになって参りました
2023/02/18(土) 23:02:43.98ID:5F4IL/7Ca
>>496
Excelです
2023/02/18(土) 23:03:12.26ID:CvraI+tp0
>>497
あるけどカテゴリがInformationalやろ
つまり決まってない事が決まってる
2023/02/18(土) 23:07:15.46ID:CvraI+tp0
>>500
ExcelからCSVにした1番面倒な奴だな
セル内で改行出来るしその場合の改行コードまで意識しないとな馬鹿ファイル

ぶっちゃけExcelのアプリ無しでExcelファイル操作出来るライブラリ使ってExcelとして読み込んで編集して再度エクスポートが正解かもな
2023/02/18(土) 23:15:36.99ID:CvraI+tp0
この業界で1番やっちゃ行けない事はExcel使う事

Excelが絡むだけで面倒事が増える
ExcelからCSVにして云々やるぐらいならExcelファイル直接C#から操作した方が安全だし手間が無い
2023/02/18(土) 23:24:25.00ID:BZOEQAJC0
ファイルはユーザーが自由に作成するんじゃなくて設計者が決められるんだからこういうのでじゅうぶんやろ

var user = "unko";
var success = "1";

var lines = File.ReadAllLines("accounts.csv");
var data = lines.Select(line => line.Split(',').ToList());
var target = data.First(recode => recode[0] == user);

if(target.Count == 3)
target[2] = success;
if(target.Count == 2)
target.Add(success);

lines = data.Select(recode => string.Join(',', recode));
File.WriteAllLines("accounts.csv", lines);
2023/02/18(土) 23:26:10.48ID:CvraI+tp0
>>504
それダメな典型やんw
2023/02/19(日) 00:37:02.72ID:0vbW6BC90
>>503
己の無知無能のせいなのにExcelを否定する馬鹿
2023/02/19(日) 06:26:51.52ID:d92YoZWa0
>>506
こういう馬鹿がエクセル方眼紙とかやるんだろうな
2023/02/19(日) 06:29:04.39ID:eQwGbFMVa
>>csvファイルを全部読み取って配列化して目的のデータを書き換えて再度csv化する

元々読み込んだファイル名と新しく置き換えるファイル名を同じにするにはどうすればいいですか?
2023/02/19(日) 06:35:36.98ID:d92YoZWa0
ファイル操作ぐらい出来る様にしとけよw
ぶっちゃけレベルが足りて無い

同じファイル名で上書きでも良いけど別名使えよ
元のファイル名を別名にしてから処理しろ
そうすりゃ処理中に例外とか発生しても元ファイル残ってるから色々出来るやろ
2023/02/19(日) 07:27:54.05ID:nLv8gTKi0
>>508
>>472
2023/02/19(日) 07:29:53.38ID:5cMiN9s60
>>509みたいな発想が出なくて、>>508の質問しちゃうのって、いくらなんでも向いてないんじゃない
覚えるとか勉強するとかじゃなくて、最低限の素養がないとソフトって作れないと自分は思うけど、そんなことないんかな?
2023/02/19(日) 07:31:21.43ID:dYEDC8zq0
そんなことはないよ
普通に体系的な勉強するだけで身につく
センスとか言っちゃうやつは勉強しなかったやつ
2023/02/19(日) 07:40:39.74ID:eQwGbFMVa
すいませんプログラミング自体経験なく、ログインの仕組みを調べていたらあのサイトにたどり着き真似してみた次第です。
基本から学びます
2023/02/19(日) 07:46:36.24ID:d92YoZWa0
なぜプログラム経験が無いのにいきなり「ログインの仕組み」に手を出したのか
この時点で全てがおかしい

野球をやった事がない奴がメジャーリーグの試合に出るようなもんだ
2023/02/19(日) 07:49:12.80ID:eQwGbFMVa
興味が沸いたからですが
2023/02/19(日) 08:09:29.30ID:d92YoZWa0
そこは誰も疑って無い

メジャー大谷見て興味持ったらまずは親とキャッチボールとかから始めるやん
草野球チーム入るとか

興味持ったからいきなり未経験でメジャーで点取るにはどうしたら良いか聞くってズレてるやろ
2023/02/19(日) 08:18:36.06ID:WB8wf4J60
>>515
興味を持つ事自体は悪くないけど、
基礎的な事をすっ飛ばしていきなりそれらを組み合わせた応用(今回の場合はログイン処理とやら)をやろうとするのは
無理があると思うよ。

今時ならネット上でイロハのイから学べるわけだし、
まずは基礎知識を勉強すると良いよ。
2023/02/19(日) 10:23:48.61ID:dXvWu+EMa
>>507
Excel方眼紙は便利だろ
否定してる奴はエアプ
2023/02/19(日) 10:25:57.11ID:dXvWu+EMa
>>509
一気に書き込む場合はバックアップは不要
2023/02/19(日) 10:52:24.46ID:d92YoZWa0
>>519
成功すればな
書いた様に例外が発生する可能性はある訳だけど?
それこそ書き込み中にプログラム落とすとかさ
2023/02/19(日) 10:54:23.90ID:d92YoZWa0
>>518
どう便利なの?

そもそも表計算ソフトで仕様書っぽいもん書いてるのが間違いやろ
Word使えばええやん
2023/02/19(日) 11:01:54.68ID:xCoNozTB0
そういえばアラン・ケイも論文で、グラフィックベースのスプレッドシートがあれば
棒グラフを描くとか一つのツールでいろんな用途に使えて便利だろう、なんて書いてたな。
2023/02/19(日) 11:13:06.28ID:AzDyUG08a
すいません怒らないで教えてほしいのですが、新ファイルに書き出すまでは出来ました。
しかし新ファイルから元 ファイルに戻す際に新ファイルがありませんと出ます。なにが原因ですか?
一番下のelseのコピーのところです
https://i.imgur.com/9MAbisf.jpg
2023/02/19(日) 11:16:14.57ID:xSIr/CQB0
>>521
方眼Excelは(低能には)便利と言うことだろ
紙に書くのと同じ自由さがあるからな
その手の奴にワード使わせても空白でインデントやセンタリングしたりするからあまり意味ないぞ
2023/02/19(日) 11:19:21.63ID:QWxstXftr
>>523
そのコードをいじくり回しても今の段階で得られるものはほとんどないよ
そのサイトのことは忘れて>>513で宣言した通り基本から勉強することを強く勧める
2023/02/19(日) 11:22:51.00ID:xSIr/CQB0
>>523
@"D: アカウントバックアップ.csv"
@"D:アカウントバックアップ.csv"
って2種あるのは回答者を舐めてんのか?
2023/02/19(日) 11:22:57.59ID:AzDyUG08a
>>525
基本からやります!ですがここだけどうしても解決したいです…
教えてください
2023/02/19(日) 11:24:14.08ID:AzDyUG08a
ほんまや
2023/02/19(日) 11:26:01.02ID:jNkDtxGh0
>>527
最後の"D: アカウント.csv"って:の右にスペース入ってるからじゃない?
こういう風に定数を何度も生で書くとケアミス発生するから複数回使う定数はconstなり変数なりで上の方で宣言しといたほうがいいよ
2023/02/19(日) 11:27:04.45ID:AzDyUG08a
大変申し訳ありません。半角スペースが原因でした。
基本から初めます
スレ汚してすいません
2023/02/19(日) 11:36:48.34ID:GOBC6KeQ0
失敗なんざ誰でもする
まぁ、ガンバレw
532デフォルトの名無しさん (ワッチョイ b5ad-t6hg)
垢版 |
2023/02/19(日) 11:39:52.23ID:/zTwrgOh0
データベースでSqliteは弱すぎでしょ。

Express版ならSqlserver Oracleも無料だし
小企業ならそのまま使えると思う。
2023/02/19(日) 11:46:13.93ID:/zTwrgOh0
Sqlserverは最初から
オートクリメント自動採番でユニークキーIDを割り当てることができる。

他のデータベースにはこの機能がないので
SQLを書かなければいけない。

オラクル
SQL> CREATE TABLE T_GENERATE_ID (id NUMBER GENERATED ALWAYS AS IDENTITY, name VARCHAR2(32));
2023/02/19(日) 11:48:19.64ID:d92YoZWa0
>>524
でもさ項目を追加ってなって行やら列を途中で追加してその他にまで影響与えて結局1シートのレイアウト微調整ってなるやん
いくら低脳でも面倒臭いってなると思うんだよね

まあその面倒で時間かかる事を仕事って思ってる土方なんだろうけどさ
2023/02/19(日) 11:49:37.73ID:d92YoZWa0
>>533
自動採番とか後々考えるとトラブルの元だから基本は使わないんやで
使うのは素人か初心者ぐらい
2023/02/19(日) 11:58:10.17ID:xSIr/CQB0
>>534
その手間 <<<< ワードのスタイルとか覚える手間
ってことなんだろ
そもそも彼らにとってレイアウトとは文字の配置でしかなくて文章の論理構造なんて考えてないから
2023/02/19(日) 12:04:28.15ID:d92YoZWa0
>>536
まさしくゴミやなw
2023/02/19(日) 12:11:07.94ID:tIYoSPNra
ワードのほうが完成度の高い文書が作れるがエクセルのほうが扱いやすい
これは真理でありどちらをとるかは好みの問題
2023/02/19(日) 12:14:50.87ID:g+1KOKEGM
エクセルに途中から列幅変えられる機能ついたらワードの出番無くなるのに
2023/02/19(日) 12:16:29.72ID:hQe+GeLGM
>>538
ただの「文章」と、印刷前提の「書類」の区別を付けられるようになろう
2023/02/19(日) 12:17:08.84ID:cuBw1cq7a
>>534
レイアウト調整というのも不明
ワードのようにページサイズが固定ではないのでそのような問題は起きない
無駄なテクニックや操作の必要なく直感的に手軽に必要な情報をまとめられて伝えられるのがエクセル
Excel方眼紙をバカにしているのは固定観念に囚われた低脳のみ。
2023/02/19(日) 12:18:07.17ID:eXL2sqeTa
印刷をしたければワードを使えばいいし今時仕様書を印刷する機会もなくエクセルで閲覧できればいいというのが大半
ワードにするメリットが薄い
2023/02/19(日) 12:46:51.63ID:d92YoZWa0
>>541
そういったものを方眼紙にする意味よ

多分お前がいってる事はズレてる
今問題にしてるのはExcel方眼紙
2023/02/19(日) 12:48:56.54ID:d92YoZWa0
>>542
そういうのならマークダウンとかでええやん
わざわざ重いExcel開くの?

目的に合ってませんよ
2023/02/19(日) 12:56:40.41ID:d92YoZWa0
ここは馬鹿ばかりだから整理する

Excel方眼紙なのでまずは方眼紙にするだけの理由が有る
方眼紙にする理由は罫線とか枠線引く為で有る
なのでレイアウトとか印刷不要で有るなら方眼紙にする必要が無い

方眼紙にする時点でレイアウトや印刷が視野に入ってる
2023/02/19(日) 13:08:54.55ID:cZHbrK/Na
方眼紙タイプの文章って情報記入するタイプのドキュメントのイメージしかない
その場合は方眼紙のほうがいいと思う
547デフォルトの名無しさん (ワッチョイ 8dad-3nnD)
垢版 |
2023/02/19(日) 13:27:25.59ID:eO6eEMEV0
【接種率80%】 手遅れか、ワクチン接種者、…タヒ
://kizuna.5ch.net/test/read.cgi/hikky/1674967026/l50
2023/02/19(日) 13:40:09.72ID:ZF2+S4ax0
印刷前提な時点で方眼紙は破綻するんですがそれは
2023/02/19(日) 13:51:59.87ID:d92YoZWa0
>>548
だから馬鹿なんだろw

そもそもググりゃ出てくるけど納品書や注文書
仕様書やら年末調整
印刷考えたものばかりだよw
2023/02/19(日) 13:53:07.65ID:owAZbnPUd
>>533
>他のデータベースにはこの機能がない

馬鹿は黙っていればいいのに
2023/02/19(日) 13:54:47.61ID:owAZbnPUd
>>535
>自動採番とか後々考えるとトラブルの元

この機能がなぜあるかわからない馬鹿は黙っていればいいのに
2023/02/19(日) 13:55:28.60ID:owAZbnPUd
ID:d92YoZWa0

馬鹿過ぎて呆れる
2023/02/19(日) 13:59:05.80ID:d92YoZWa0
>>551
トラブルになる事象が分からない時点で関わったシステムの規模が分かる

何で自動採番じゃ無くてGUID使ってるのか理由が分からないんだろうな
2023/02/19(日) 14:00:09.70ID:0vbW6BC90
>>553
馬鹿はお前
2023/02/19(日) 14:01:45.19ID:d92YoZWa0
>>554
無知って怖いなw
2023/02/19(日) 14:06:19.36ID:owAZbnPUd
>>555
無知の馬鹿はお前
例えば

>>533
>他のデータベースにはこの機能がない

と書いているがOracle,Sybase,MySQL,Postgresql,SQLiteにもこの機能はある

知ったかの無知無能の馬鹿は消えろ
2023/02/19(日) 14:08:41.28ID:urEJu8B+M
Excel方眼紙を使う人の頭はこういうものだという実例ですな
2023/02/19(日) 14:10:40.76ID:d92YoZWa0
>>556
機能が無いって書いたのは俺じゃ無いぞ
レスもちゃんと読めない様じゃ…
2023/02/19(日) 14:11:48.49ID:d92YoZWa0
誰がレスしたか勘違いして馬鹿っていってる低脳が何を言っても無駄やなw
2023/02/19(日) 14:12:20.44ID:d92YoZWa0
>>557
ほらこういう低脳も一緒に釣れるw
2023/02/19(日) 14:12:37.58ID:owAZbnPUd
>>558
それはすまんかったな
しかし、自動採番がなぜあるかわからん馬鹿だろ、お前
2023/02/19(日) 14:16:28.30ID:d92YoZWa0
アホやろ存在する理由の問題じゃ無いんよ

トラブル時や大規模なシステム組む時の色々で自動採番した時にキチンと対応出来ないとトラブルになるんよ
その事例が分からないならその人の経験が知れるって言ってるんよ

でもってそういったトラブルはGUID使う事で簡単に回避可能
2023/02/19(日) 14:22:58.26ID:xSIr/CQB0
>>533
Oracle: GENERATED ALWAYS AS IDENTITY/GENERATED BY DEFAULT AS IDENTITY
MySQL: AUTO_INCREMENT
PostgreSQL: smallserial, serial, bigserial
今どきメジャーなDBMSで自動採番持ってない奴の方が珍しい

>>535 を含めたバカは使うなっていう意見は正しい
まあそんな奴に開発させんなという意見の方がより正しいがw
2023/02/19(日) 14:23:18.16ID:d92YoZWa0
言い方を変えよう

開発運用メンバー全員が必要な知識を保有していて対応できるなら問題ない

だけどスキルが足りないとかうっかりミスが発生するなら自動採番はトラブルを発生させる

>>561
お前さんはレスした人間をうっかりミスで間違えた訳だ
こういった人間が居るならトラブルになる訳だよ
残念だけどお前はお前自身の行動でそれを証明してくれた

気にする必要は無い
人間はミスするもんだ
人間がミスしてもすぐにトラブルにならない様に考えるのは頭のいい奴に任せておけ
無能の出番は無い
2023/02/19(日) 14:24:20.66ID:8Ws5w7ImM
Excelの質問はここでいいですか?
2023/02/19(日) 14:24:39.66ID:xSIr/CQB0
>>553
理由書いてからほざけよw
2023/02/19(日) 14:27:30.53ID:d92YoZWa0
>>566
何でわざわざ教える必要があるの?

トラブりました解決できません
効果的な改善方法教えてください

って馬鹿から人月200、300取ってコンサルするのが俺の仕事なんよ
メシの種やで
2023/02/19(日) 14:34:50.41ID:dYRdaH6ma
2023/02/19(日) 14:39:50.82ID:ofHb3r8t0
最近なんでも答えてくれると思ってる雑魚がおるな
2023/02/19(日) 14:47:38.58ID:xSIr/CQB0
>>567
はい、逃げた〜w
まあ低能のやらかし事例なんてくだらん内容だろうしな
2023/02/19(日) 14:53:17.94ID:d92YoZWa0
>>570
でお前は分かんないだろw
2023/02/19(日) 15:10:05.22ID:xSIr/CQB0
自称低能コンサルトやらがレスつけてて草
顔真っ赤なんだろうなw
573デフォルトの名無しさん (スッップ Sd43-S2bO)
垢版 |
2023/02/19(日) 15:13:47.59ID:1OiGX+vQd
このスレ怖い
レプリケーションとか知らないんだろうな
2023/02/19(日) 15:32:11.61ID:d92YoZWa0
>>573
お前のせいでスレが馬鹿だらけなの露呈してみんなダンマリやん
2023/02/19(日) 15:34:34.46ID:1KcZ6oa00
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
ワッチョイ fd7c-l9W9
ワッチョイ 1501-rc3u
スップ Sd03-O7MM
ワッチョイ a38e-O7MM
NG推奨
2023/02/19(日) 15:38:44.82ID:xSIr/CQB0
>>573
レプリケーション?
どうせこのあたりの話だろw
https://social.msdn.microsoft.com/Forums/sqlserver/ja-JP/7a4629ec-252a-4b68-aaa8-9ee808020204/sql-server-2012-id?forum=sqlserverja
577デフォルトの名無しさん (スッップ Sd43-S2bO)
垢版 |
2023/02/19(日) 15:50:05.43ID:1OiGX+vQd
そんな掲示板では無くMSのドキュメントとか読めば良いと思いますよ
マスター1台読み取り専用複数台ならそこまで問題になりませんが書き込みまで複数台用意しようと思ったらもう無理ですよ
2023/02/19(日) 16:12:32.75ID:nLv8gTKi0
>>523
@"D:アカウント.csv" と @"D:\アカウント.csv" は意味が違うから注意。
2023/02/19(日) 16:20:04.57ID:xSIr/CQB0
>>577
マルチマスタだとそりゃ色々トラップあるわな
別に自動採番に限った話だけじゃ無いだろ
2023/02/19(日) 16:26:23.46ID:VC8rtCXn0
なんか延びてると思ったら、元質問者ほっぽりだしてレスバ始めるいつもの光景だった
2023/02/19(日) 16:27:59.51ID:d92YoZWa0
本当にアホやな
だから自動採番じゃ無くてGUID使っておけばその部分は面倒減るやろ

でもって色々有るけど話題が自動採番だったからそこだけに言及した訳やん
でもってマルチマスターなんてそこまでの規模のシステム経験なきゃ知らんやろ
だから大規模システム云々言った訳やん

常に大規模システム前提にしてるのとDB1台で済む仕事してる人じゃ考える事が違うんだよ

>>579
自動採番でお前はどこまで考えられなかったんやろ
何がトラブルになるかも知らない
そりゃ話は並行線よ
2023/02/19(日) 17:46:21.57ID:bwwdc6fua
自動採番使っちゃいけない理由がマルチマスターとか草生えるわ
しかも対策がGUID使うとか小手先にもほどがある
自称大規模システム経験者のくせにこんなことも知らないとか顔真っ赤だろ

キー値にランダムに生成された GUID を使用しており、大量の行を挿入した場合、インデックスにランダムな I/O が取り込まれるため、パフォーマンスが低下する可能性があります。
GUID はさらに、他のデータ型と比較すると比較的大きいものになります。
通常、GUID は、その他のデータ型が適さないような非常に限られた場合にのみ使用することをお勧めします。
https://learn.microsoft.com/ja-jp/sql/connect/ado-net/sql/compare-guid-uniqueidentifier-values?view=sql-server-ver16

そもそもマルチマスターなら自動採番だけ対策してもダメで他の項目での衝突とかにも対応しないとダメ
またマルチマスターのために自動採番の開始番号をサイト毎に変えたりすることもできたりする機能があることも知らないのにドヤるのは流石に恥ずかしいわ
2023/02/19(日) 17:54:44.33ID:d92YoZWa0
現実見ろよ
大規模システムの多くはGUIDでやってる

microsoftだってDynamicsCRMの裏で動いてるDBはGUIDやでw
584デフォルトの名無しさん (スッップ Sd43-S2bO)
垢版 |
2023/02/19(日) 18:00:47.31ID:1OiGX+vQd
CRMだけじゃ無くTeamsとかSharePointとかTFSとかもですよ
2023/02/19(日) 18:07:24.80ID:bwwdc6fua
> 大規模システムの多くはGUIDでやってる
妄想でないならソースよろしく
まあSharePointとかはセキュリティ上の都合もあるからリンクURLにGUIDは使ってるけど元データの管理に使ってると言うソースね
2023/02/19(日) 18:09:11.57ID:d92YoZWa0
こりゃたまげたw
オンプレのSharePointとか立てた事が無い?
普通にSQLServerのテーブルのデータなり設計見りゃ良いじゃ無いですかw
2023/02/19(日) 18:19:37.24ID:d92YoZWa0
何だろクラウドで何でも用意されて便利になったけど弊害なんかねぇ
ある意味“ゆとり”やなぁ

昔はどうだったとかこの業界じゃあまり意味は無いけど他のシステムがどういうデータ構造してるとかテーブル設計してるとか見えないのも勉強の機会を奪うんやな

でもって何でこういう設計になってるんだとか考えないからこのスレの連中みたいになるんだろうな
2023/02/19(日) 18:26:00.08ID:owAZbnPUd
>>564
馬鹿は自動採番をマスターコードに使うとかしか思ってないのか
こういう馬鹿だからExcel方眼紙を作るのか
2023/02/19(日) 18:29:42.58ID:d92YoZWa0
>>588
なあ話の流れが何から始まってるか忘れてないか?

そういう事に気付けないから方眼紙作るんじゃねw
レス見りゃ分かるけど俺は方眼紙作るなって言ってる側なんだけどそんな事も判断出来ない?

もう負け犬の遠吠えになって支離滅裂ですよっと
2023/02/19(日) 19:16:19.57ID:xSIr/CQB0
>>586
> オンプレのSharePointとか立てた事が無い?
SharePointは試行として15年前に立てたけど流石にスキーマまでは見てないわ
で、テーブル名とフィールド名書いてくれ、明日確認するから
あと、大規模システムの多くがGUIDの根拠もよろしくねw

>>589
> もう負け犬の遠吠えになって支離滅裂ですよっと
お前がな
591デフォルトの名無しさん (アウアウウー Sa49-6saT)
垢版 |
2023/02/19(日) 19:19:35.69ID:hrLsCaA7a
レスバしか生きがいのなさそうな連中ばっかだね。
2023/02/19(日) 19:22:35.67ID:d92YoZWa0
>>590
ほぼ全部のテーブルのPKはGuidだから存分に確認してくれ
2023/02/19(日) 19:23:05.67ID:d92YoZWa0
ああオンプレのDynamiCRMでもいいぞ
594デフォルトの名無しさん (スッップ Sd43-S2bO)
垢版 |
2023/02/19(日) 19:30:57.92ID:1OiGX+vQd
あのぉ…
15年も前に試行で立てたサーバが使われずにそのまま残ってるのってヤバく無いですか?
2023/02/19(日) 19:34:46.58ID:nWzPf4U3r
スレに関係ないレスバはそろそろ止めてくれよ
口汚い煽り合い罵り合いは傍から見てて不愉快以外の何物でもない
2023/02/19(日) 19:45:04.21ID:xSIr/CQB0
>>592
いや、具体的なテーブル名とフィールド名頼むよ
まさか出せないわけじゃないだろ?
あと、大規模システムの多くがGUIDの根拠はどうした?

>>594
試行って書いてあるだろ、6ヶ月ぐらいで廃棄したよ
そもそも15年前と今でスキーマ違うだろうし
会社に行けば今のSharePoint使ってるところあるからそこに聞けばわかる
2023/02/19(日) 19:48:01.76ID:vkCTUlzu0
ヤバい人はヤバい人を呼び寄せる
2023/02/19(日) 20:15:38.86ID:M1mmtWZV0
ここに巣くっていらっしゃる自称有能な人たちの正体がこれだからな。
575 の後にこれだけ続けられるのはすご・・・くないな。
2023/02/19(日) 21:49:02.09ID:t9MPar+o0
「初心者用」スレでレスバを繰り広げてしまうオジサンの悲哀
2023/02/19(日) 23:05:23.45ID:F3sCABek0
誰にも構って貰えないからここで憂さ晴らししてるんだろうな
2023/02/20(月) 02:44:22.58ID:MgLoeEmh0
>>458
これは香ばしい

IDENTITYめっちゃ好き
これのおかげで捗ることは多々ある
2023/02/20(月) 02:46:24.32ID:MgLoeEmh0
あ、458の人じゃなくて、リンク先の話だよ
2023/02/20(月) 09:00:16.98ID:SjajNyyV0
日曜の午後いっぱいレスバしてんの草生えるわ
2023/02/20(月) 10:34:12.59ID:vEQcsP0U0
楽しそうだよなw
2023/02/21(火) 06:58:00.00ID:StFh5srV0
自動採番でユニークIDあるほうが
データベースは扱いやすい。
IDがないデータベースとか逆に怖い。
2023/02/21(火) 07:29:06.13ID:Cm9Gh80c0
ユニークIDが無いとか誰も言ってないんやで
そのユニークIDが整数型の自動採番なのかGUID又は文字列型のGUID7日って話

でもって1日以上経ったけどCRMとかのスキーマ確認終わったんかね
まあ確認して違うなら鬼の首取った様に言ってくるはずだから結果は見えてる

息してるんかなアイツ
今頃自分の無能さとキャリアの無さに震えてるのかもしれん
2023/02/21(火) 07:49:02.78ID:qASqt4SF0
>>606
まだいたのかよw
具体的なテーブル名とフィールド名はまだ出せないの?
待ってるんだけど
2023/02/21(火) 08:11:09.38ID:Cm9Gh80c0
何の意味もない事を連呼する無能

例えば特定の1テーブルを俺が指定してその通りだったらそれで良いのか?
それ以外は全部自動採番かもよw

普通そう言った作為的な事を避ける為に指定するなんて事は避けるのが“常識”

まさかスキーマ調べるのに全テーブルのリストを一気に出す方法をご存知無い?
2023/02/21(火) 08:14:21.43ID:Cm9Gh80c0
常識も知らず自らやると言った事もやらない

無能の極みやなw
2023/02/21(火) 08:26:17.60ID:qASqt4SF0
えっ?
そんな中身のない文章書く暇あるならサクッとテーブル名とフィールド名書けばいいのにw
611デフォルトの名無しさん (スッップ Sd43-S2bO)
垢版 |
2023/02/21(火) 08:30:08.16ID:PC7NmD+5d
もう少し落ち着いてw

スレ的な事で言えばSqlConnectionにGetSchemaが有るのでそれでスキーマ情報は取れるかと思います
その上で各テーブルのPKのフィールド情報とか取れば良いのかと思います

調査してるのに相手に特定の情報を求めるのは流石に>>607が変だと思います
ペネとレーションテストとかだって態々テスト業者にココですよとは言わないです

それと法治国家で有る日本においては疑ってる方がそれは間違いだの嘘だのを証明する必要が有るので日本人としてもおかしいですね

何より情報提供が無ければ調査出来ない事ならともかく調査に関係のない事を要求して待って調査出来てませんは何の言い訳にもなりません
無能は言い過ぎですが仕事は出来ない人の典型です
2023/02/21(火) 08:31:17.41ID:Cm9Gh80c0
>>610
ブーメランやなw
そんなと事書くとか待つ間に調べりゃ良いのにw
613デフォルトの名無しさん (スッップ Sd43-S2bO)
垢版 |
2023/02/21(火) 08:41:46.66ID:PC7NmD+5d
双方とももう少し大人な対応出来ないんですかね?

クラウド版しか使った事が無いのでググってみました
ttps://debajmecrm.com/dynamics-crm-team-membership-table-audit/amp/

これだけじゃ判断できないとかそういう場合は自分達で色々調べてみて下さい
少なくてもGUIDが使われてるという事は間違い無さそうです
2023/02/21(火) 08:47:47.87ID:km8hBiSw0
DBのスレでやれ。邪魔。
2023/02/21(火) 08:55:36.91ID:WzHy3E970
こんなところでしかイキれないおじさん、かわいそかわいそなのですよ
2023/02/21(火) 10:32:42.54ID:rKhaXs3b0
他のところでイキるおじさんきたな
2023/02/21(火) 10:41:54.00ID:rKhaXs3b0
なんかよくわからんけど自動採番の是非で争ってんの?
レプリケーションされる側は自動採番切ればいいんだぞ
2023/02/21(火) 10:47:26.86ID:HT5z9Vlv0
余所でやれ余所で
2023/02/21(火) 11:02:55.11ID:Cm9Gh80c0
>>617
マルチマスターが分かってない馬鹿
2023/02/21(火) 12:02:00.62ID:lu2mbOR0d
CSV→SQLite→ExcelCSV→SQLServer→自動採番→GUID→そして今↓

ワッチョイ fd7c-l9W9
> 大規模システムの多くはGUIDでやってる
> オンプレのSharePointとか

ワッチョイ 1501-rc3u
> テーブル名とフィールド名書いてくれ

スッップ Sd43-S2bO(レプリケーションやマルチマスタを引き合いに出した人)
> ワッチョイ 1501-rc3uが調査すべき
2023/02/21(火) 12:04:32.00ID:Aqm2+vwoM
商品コードみたいな人間用の識別コードは別途設定する感じですか?
2023/02/21(火) 12:06:30.73ID:L+HWZvhn0
むしろみんなNG設定にしてないのに驚く
2023/02/21(火) 12:16:46.92ID:Cm9Gh80c0
>>620
まあ立証責任って奴だよな

俺の言ってることが疑わしい
でも日本じゃ疑わしきは罰せずの原則
俺が本当だって証明する必要は無いけど疑ってる方が嘘だと証明する必要はある

この辺が分からないのは知識が足りないか無能
2023/02/21(火) 12:23:22.51ID:Cm9Gh80c0
>>621
商品コードが一意ならそのままPKにすりゃ良いんじゃね
何でわざわざ自動採番使うの?無駄でしょ
2023/02/21(火) 12:35:51.91ID:SAWbr9f/M
技術的な選択に万能なものなんてないんだから
自動採番でもGUIDでもその他の選択肢でも
それぞれの長所短所の両方を理解して状況とトレードオフを判断して使い分けるのが当たり前

特定の選択肢にあたかも短所がないように喧伝する人がいたらそれはエンジニアに求められる最低限の思考ができない人なので相手にするだけ時間の無駄
2023/02/21(火) 12:40:32.57ID:Cm9Gh80c0
>>625
その通りだよ

だから大規模だと自動採番は問題になる事が多いからGUIDを採用する場合何多いって俺は言ってる訳よ

大規模やった事ないんだろうなっていうのも小規模なら自動採番でも問題になる事は少ないのでそういう経験しか無いんだろうなって言ってるだけ

つまり小規模での自動採番は誰も否定してない

これがお前の言ってる事だと思うんだけどそれすら読み取れないのはやっぱり無能
2023/02/21(火) 12:48:04.89ID:Aqm2+vwoM
>>535
これか?
2023/02/21(火) 13:23:00.91ID:rKhaXs3b0
>>619
使いこなせないなら使うなよw
2023/02/21(火) 13:24:49.40ID:rKhaXs3b0
マルチマスターガーとか言ってるやつはID以外の二重登録とか考えてもいないんだな
2023/02/21(火) 14:29:08.82ID:pbf9sIV80
こういうのって前提を後から色々出してくるから、議論にもならないんだよな

マルチマスターとかguiduuidとかパフォーマンスとか
「俺はこうだからこう思ってるんだよ」の「こうだから」が後出しとかね

まあ見てる分には勝手にやってろだけどなw
2023/02/21(火) 14:36:55.50ID:Cm9Gh80c0
>>630
そりゃ最初は議論するつもりが無いからな

言った様に世の中での大規模システムはそうなってる
やってる奴は知ってる分かってる説明の必要が無い

それを商売にしてるんです書く事は出来ない

更に言えば知る必要も無い
無能は黙って言われたことに従ってれば良い
自分で考えて何でそうなってるか分かった奴が上に行ける
世の中そんなもん
2023/02/21(火) 15:37:45.01ID:rKhaXs3b0
自分で何を言ってるかわかってないやつは上には行けんぞw
2023/02/21(火) 19:31:04.87ID:NTFSmz6y0
つか、GUIDでオッケーとか言ってる奴は
GUIDは「自動採番」じゃないと思っているのか?
GUIDは衝突しないと思っているのか?

GUID使えば大丈夫みたいな認識で大規模システム語るなよ
2023/02/21(火) 20:13:33.44ID:0GWHk9pEa
ソケットでサーバーからクライアントにメッセージを送るためのにはどうすればいいですか?
2023/02/21(火) 20:24:18.01ID:Cm9Gh80c0
>>633
衝突したら取り直せば良いだけやん
リトライ処理どうせ書くやん
頭悪すぎでしょ

ああリトライ処理とか書かない糞プログラムしか書かないから想像出来ないか
2023/02/21(火) 20:27:33.64ID:Cm9Gh80c0
>>634
ググれ
ググれば腐る程サンプルコード出てくる
その上でこうやって実装したんだけど動かないとか質問しろ
2023/02/21(火) 20:29:20.47ID:rKhaXs3b0
>>635
え?もしかして自動採番でも取り直せること知らないの?
2023/02/21(火) 20:29:36.58ID:NTFSmz6y0
>>635
で、GUIDの何が便利なんだ?
2023/02/21(火) 20:32:58.33ID:Cm9Gh80c0
便利なんて一言も言ってないけど?
アホ?

デメリットが少ないって言ってるだけ
2023/02/21(火) 20:37:55.75ID:Cm9Gh80c0
>>637
何か的外れなツッコミだなって今日の書き込み見てみたら全部そうだった

プログラムとか以前に頭悪すぎて草w
2023/02/21(火) 20:41:49.36ID:Cm9Gh80c0
で肝心のワッチョイ 1501-rc3uはどうしたの?
MS製品がGUID使ってるの分かって恥ずかしくて出てこれない感じ?
今頃釣ってそうw

15年前にオンプレ鯖がどうこう言ってたからそれ以上のキャリアあるんでしょ?
全く意味の無い成長の無い人生だって知ったらもうねw
2023/02/21(火) 20:47:53.58ID:fesX98uF0
>>634
まずは服を脱ぎます
2023/02/21(火) 20:55:21.14ID:rKhaXs3b0
>>640
おう、ズレてることに早く気づくといいな
とりあえず就職してみたら?
想像の世界に生きてたらこういうことになるから
2023/02/21(火) 21:23:28.00ID:NTFSmz6y0
>>639
デメリットが少ないのは普通、便利だっていうんだけど
具体的にどういうデメリットが解消されるって?
まあ、揚げ足しかとれないで解消しないけど少ないとか言い出しそうだな
2023/02/21(火) 23:58:30.02ID:CFQVVPXH0
>大規模だと自動採番は問題になる

どういうケースだろ
2023/02/22(水) 00:18:39.14ID:ywGxgjQk0
あんたらまだやってんのかw
擦るねぇ
2023/02/22(水) 01:13:55.56ID:/Tp2qWpP0
>>634
acceptした後にそのソケットにsendする。
2023/02/22(水) 07:57:16.18ID:tnIJ4+SKr
「大規模」とやらもふわっとしてる表現だしな
2023/02/22(水) 08:44:58.55ID:OTKNAsqc0
>>646
一番真っ赤なのが朝から晩まで常駐しててもうね
2023/02/22(水) 08:54:22.82ID:aZ0d5T8Y0
何でも良いけどMS製品で大規模に使われるシステムにGUID採用されてるって事に意義は無いって事で良いか?

何んでとか理由まで聞くのはアホ
何でも教えてもらえると思うな
そこからは人月200、300の金が掛かる話や
お前らもそうやって仕事してるんだから理解出来るやろ
2023/02/22(水) 08:58:50.02ID:Lno1Pw0wa
んーと、それぞれの案件によって使い分けるんだぞw
無職は一例を見るとそれが全てと思うの
2023/02/22(水) 09:14:16.63ID:aZ0d5T8Y0
>>651
んな事は分かってるよw
だから話の流れが分かってない馬鹿って言われるんだよ

MSドキュメントを持ち出して来たから実例として出しただけやん

プログラム能力云々じゃ無くて基本的無能だな
2023/02/22(水) 09:16:32.62ID:dnPnfK4u0
スレタイも読めない人たちの基本的能力ってw
2023/02/22(水) 09:31:51.16ID:aZ0d5T8Y0
C#からDB使う場合の話やろ
スレタイ通りやな
2023/02/22(水) 09:54:29.60ID:Lno1Pw0wa
言うことがいちいちズレてるなw
しかもそれに気づかないから相手がズレてると思い込んでて結果これだよ
2023/02/22(水) 09:55:33.85ID:CwX7PCEJp
おまえらDBこねくり回すしか仕事無いのかよw
2023/02/22(水) 10:17:37.51ID:gJ0zE94R0
最近AWSのインフラ構築をC#で書いてみたけど、別にC#じゃなくてもいいね。
型が厳密なせいで肩がこる書き方になるし、
型がゆるーいスクリプト言語のほうが向いてる気がする
2023/02/22(水) 10:21:51.67ID:CwX7PCEJp
むしろ散々型を気にする言語使ってたら、逆に緩い言語使う時に戸惑うよな
2023/02/22(水) 11:00:04.75ID:5ZXMwUGv0
まあそれは気分だよなあ
緩くてエラーとかになると正反対の気分になるしw
2023/02/22(水) 11:14:36.15ID:SqmMPCpZ0
MSがGUID使う理由は大体見当つくけど、彼がそれを説明できないのは笑えるね
おそらく上の人にそう言われた程度しか知らないんだろうな
2023/02/22(水) 12:07:36.36ID:aZ0d5T8Y0
>>660
ブーメランじゃねw

お前も説明してないので同じ事がお前自身に適用される
論法もまともに出来ない無能
2023/02/22(水) 13:02:30.00ID:mzxVPNszr
相打ちー
2023/02/22(水) 14:55:05.44ID:SqmMPCpZ0
>>661
自動採番はInsertするまで決定しないからそれをFKで使う関連テーブルの更新が割りと面倒
それくらい気が付かなかったのかな?
2023/02/22(水) 15:22:17.31ID:aZ0d5T8Y0
>>663
それ大規模で関係ある?
どの規模でも同じだよね
2023/02/22(水) 15:24:07.64ID:aZ0d5T8Y0
ホント話の流れとか前提とか把握してないのに無駄に突っ込む無能って害悪やな
2023/02/22(水) 15:36:34.93ID:SqmMPCpZ0
>>664
大規模開発限定なんて君しか言ってないけどw
2023/02/22(水) 15:54:07.02ID:MIqUxzeUa
>>663
どこが面倒なんだw
2023/02/22(水) 15:54:34.66ID:aZ0d5T8Y0
>>666
悔しいのは分かるけど意味不明w

俺に説明出来ないだの気付かないだの言っておいてそれはガイジやろw
2023/02/22(水) 15:55:32.94ID:aZ0d5T8Y0
>>667
その程度で面倒に感じる程度なんやろ
2023/02/22(水) 16:10:08.18ID:SqmMPCpZ0
>>668
相変わらず自分の見解は無しw
よくそれでマウント取れると思ったな
2023/02/22(水) 16:15:00.98ID:aZ0d5T8Y0
>>670
書かない理由も既に書いてるけど読めない?

ああ理解出来ないから馬鹿なのかw
2023/02/22(水) 16:24:33.62ID:SqmMPCpZ0
>>671

661 返信:デフォルトの名無しさん (ワッチョイ fd7c-l9W9)[sage] 投稿日:2023/02/22(水) 12:07:36.36 ID:aZ0d5T8Y0 [4/9]
>>660
ブーメランじゃねw

お前も説明してないので同じ事がお前自身に適用される
論法もまともに出来ない無能

説明していないと自白しているのは確認したw
2023/02/22(水) 16:55:42.68ID:aZ0d5T8Y0
書けば書くほど馬鹿を晒すなw

俺にブーメラン帰ってないでw
2023/02/22(水) 18:26:59.39ID:8fySboC90
まあ技術的に返せなくて人格攻撃しかできないような奴のレベルは推して知るべし
2023/02/22(水) 21:12:15.66ID:8Lnlg+wO0
>>663
それが困る場合は IDENTITY じゃなくてふつうに SEQUENCE 使えばいいんじゃね
2023/02/22(水) 22:15:34.87ID:72VrKBx+0
UIを作り始めたので非同期処理について調べ始めてみました
なんとなく概念的なものは分かるのですが記事によってこう書くべき/書くべきじゃないというのがバラバラなので基本的な指針がイマイチ掴めません
例えば非同期な関数の中はすべて非同期処理にするべきなのでしょうか?
同期処理を中に混ぜても書けてしまうのですが同期処理と非同期処理はそれぞれ完全に分けて記述するのが一般的ですか?
2023/02/22(水) 22:27:21.33ID:lHNZ9uxM0
すべて非同期にするような非効率なことしなくていいだろ
2023/02/22(水) 22:30:00.48ID:aZ0d5T8Y0
具体的なコードを出すべき
2023/02/22(水) 22:30:04.81ID:R6q1C2ar0
処理が終わるまでに他にすることがないなら同期でUIフリーズさせとけばいい
そのほうがユーザーにもわかりやすい
2023/02/22(水) 22:31:33.00ID:aZ0d5T8Y0
それって1番ダメなやつやんw
2023/02/22(水) 22:33:18.05ID:hKnEsPO40
UIでボタン押したあと一回一回終わる処理ならawaitで同期して書く
トリガ受けて常駐する処理なら完全にわける
2023/02/22(水) 22:34:20.17ID:aZ0d5T8Y0
一般ユーザって馬鹿なんよ

UIフリーズしたら裏でどうこうなんて知らないんだからアプリが重いとか処理が固まったって言うんよ
要は糞アプリ認定
2023/02/22(水) 22:45:48.29ID:R6q1C2ar0
実際に重いんだから当然だろ
処理を並列化してマルチコア対応するのなら非同期も意味が出てくるからやるといい
出来ないならヤメロ
WindowsはマルチタスクOSなのでエロビデオ見ている間に終わればいい
2023/02/22(水) 22:48:14.10ID:hKnEsPO40
windowsじゃUIフリーズはOSが応答なしと認識して
殺しますかってダイアログ出してくるから駄目や
2023/02/22(水) 22:52:53.20ID:iDIgOzo00
>>679
今時UIフリーズは見っともないぞ
1秒とか極短時間ならまぁありだと思うけど
2023/02/22(水) 22:53:47.40ID:1bDiXhoP0
>>683
UIを軽視するな
2023/02/22(水) 22:55:04.76ID:R6q1C2ar0
普通なら1秒かからない処理まで非同期にしてエラーメッセージすら出せなくなったWindows11さんのようにならないように気をつけてね
2023/02/22(水) 23:06:17.46ID:R6q1C2ar0
ま、極論だけどな
wpfならコマンドボタンにAsyncRelayCommandをはめるだけだ
簡単だな
でもめんどうだからウインドウまるごと無効化とかしちゃうよねw
2023/02/22(水) 23:07:26.87ID:aZ0d5T8Y0
またゴミ屑が混ざってるな
2023/02/22(水) 23:09:33.79ID:R6q1C2ar0
>>689
めんどくさい上に意味がないんだよ
反論できますか?
2023/02/22(水) 23:14:45.72ID:aZ0d5T8Y0
>>690
既に馬鹿なユーザによって糞アプリ認定されると書いたけど?

糞アプリ認定ってのは客が誰かによるが業務系アプルなら当然改修しろって言われる
スマホアプリ見たいな奴なら売れない

反論できる?
2023/02/22(水) 23:17:51.51ID:aZ0d5T8Y0
>>690
お前の言ったエロビデオをPCで見たとしよう

ビデオ閲覧ソフトが面倒だって理由でUIフリーズさせててエロい画面が更新されずってなったら使わんだろ?
お前が言ってるのはそういうことだ

商品や製品レベルじゃ無いんだよ
2023/02/22(水) 23:19:37.65ID:iDIgOzo00
別にアプリの操作は出来なくても構わないけど、ウィンドウ移動すら出来なくなるはちょっと
今なら大した手間でもないのに
2023/02/22(水) 23:20:49.12ID:aZ0d5T8Y0
まあ馬鹿には分からないんだろ
2023/02/22(水) 23:36:22.32ID:SqmMPCpZ0
まあawaitから抜けたタイミングでCancelされたりDisposeが走ったりをいちいちチェックしなくちゃいかんのは面倒ではあるな
ただ、これを怠るとクソアプリになっちまう
696デフォルトの名無しさん (ワッチョイ 1b05-I4Me)
垢版 |
2023/02/22(水) 23:42:53.10ID:nCkg+nHK0
ようわからんかったら全部Task.Runに押し込んでコールバックすればいいよ
2023/02/23(木) 03:09:48.61ID:K1P6f92B0
たんに非同期とかいうと範囲が広すぎるからな
まあ、非同期は目的じゃなくて手段なんだから、目的をはっきりさせよう
>>676のいう非同期ってのはawaitに限定した話で良いのか?
2023/02/23(木) 05:45:14.30ID:d3tkzJuS0
>>657
型が厳密なほうが好きだ。
varもなるべく使わないできっちり書く。

スクリプト言語で型がなくて文字列でも整数計算できたりするのはいいのだけど、
Pythonのように型宣言がないのに型がある言語がつらい。
intを入れていた変数の中身がいつの間にかfloatになっていて原因を調べたら、
途中の除算のせいだった。Pythonだとint型/int型=float型。
2023/02/23(木) 07:24:06.39ID:+YhBBcDf0
どうでもいいけどそれは変数の使い回しも問題じゃないのん?
除算したらもう違う意味のものやろ
2023/02/23(木) 08:06:33.56ID:BvhctNj6a
「//演算子」を知らないお前が悪いとしか
2023/02/23(木) 08:39:59.38ID:O5A4F0mW0
右辺でnewしててそのまま扱うだけの時なんかはvarしてるけど
関数の戻り値受ける時とかは型名書いて宣言してるかな
2023/02/23(木) 08:46:22.62ID:6eqWydaM0
C#はvar使えるけど強力な型推論でコンパイル時点で弾いてくれるから別に使ってもいいかな
2023/02/23(木) 09:23:07.97ID:YlmVjB0R0
VBだと勝手にキャストされたりするけど、C#はそのへんの制限強いもんね
2023/02/23(木) 09:43:10.46ID:U/HQXaW+M
C#の型推論は出始めは強力な部類だったけど今はrustとかと比べるとかなり貧弱なんだよな
まあ技術や概念は進歩するんだ
2023/02/23(木) 10:48:24.21ID:NaebF7tW0
呼ばれてないのにRustチョーーーーーン
2023/02/23(木) 12:38:42.14ID:c775I29ma
正直F#並の推論が欲しくなることはある
2023/02/23(木) 13:17:33.61ID:d3tkzJuS0
>>699
定数変数の倍数に丸めたくて、
hoge = 10
fuga = fuga / hoge * hoge
とかしたんだよ。たしか。

>>700
>>698を書いている時に知った。
2023/02/23(木) 14:19:59.52ID:U/HQXaW+M
自分はrustは勉強したけど使ってない
C#の方がいいから

外からの刺激は必要だと思うけど全部が全部取り込む必要はない
こんな微妙なタイミングでジェネリックで計算できるようになったのはrustからの刺激が原因だろうけど
今更感がある
2023/02/23(木) 15:19:02.16ID:Rcv3zn+Ua
ジェネリックで計算できるようにしてほしいという要望は相当前からあったぞ
むしろInt32とかは最初からIArithmeticインターフェイスを実装しかけてコメントアウトで外してる
おそらく実装者の技術的限界で見送り続けてきたのがようやく実装できたんだろ
2023/02/23(木) 15:28:18.88ID:U/HQXaW+M
一部で要望はあったけどずっとなくても何とかやって来てこの微妙な時期での実装

rustのマクロを駆使した超強烈な実装を見て手法が確立されて実装されたんじゃないかと
2023/02/23(木) 15:32:55.31ID:Rcv3zn+Ua
まあそう思いたいなら思っとけ
なんでrustとかruby使ってるやつはこんなんばっかなんだ
712デフォルトの名無しさん (ササクッテロラ Spe1-An8R)
垢版 |
2023/02/23(木) 15:35:49.50ID:D5ClvIDip
ジェネリックで計算ってどういうこと?
言語仕様なんて全然追いかけてないからわからない
2023/02/23(木) 15:35:55.63ID:U/HQXaW+M
だから使ってないって言ってるだろ
2023/02/23(木) 15:38:21.15ID:BgVzVA3A0
>>712
generic mathでググれ
2023/02/23(木) 16:13:42.99ID:ZqbKv2H4r
>>710
理屈と膏薬はどこにでもつく
716デフォルトの名無しさん (ササクッテロラ Spe1-An8R)
垢版 |
2023/02/23(木) 16:26:11.54ID:Rqipt3qxp
>>714
ふむふむ、なるほどねー(何もわかってない)
2023/02/23(木) 18:09:58.93ID:U/HQXaW+M
超簡略して書くと
今まではジェネリックで単純に計算できなかったけど制約付きでできるようになりましたよ
2023/02/23(木) 20:40:35.46ID:5afFl0ZD0
>>714
ググった。マジすか。
昔から欲しかった数値型制約ってことすか。
待ってて良かったC#
2023/02/23(木) 20:43:42.35ID:1RS70dw+0
>>698
俺も書くときはvarが好きで
読むときはvarは嫌い

って思ってたらVSで一発で変換できる機能があったから使ってた
2023/02/24(金) 00:34:19.46ID:LXr7iqjl0
面倒くさいからvar使いまくってるわ
721デフォルトの名無しさん (ワッチョイ 1501-An8R)
垢版 |
2023/02/24(金) 01:03:49.83ID:PeKlM3lq0
varってint入れた後、変数再利用でstring入れたりできる?
2023/02/24(金) 01:23:46.89ID:Q77HdEB50
できない
暗黙なだけで型を持った変数だから
なんでも取れるオブジェクトではない
2023/02/24(金) 07:39:41.14ID:5s0A+5N90
C#やってるせいか、型宣言しないJavascriptは不安になる。
でも、そっちの人達は逆に冗長に感じるんだろうか。
2023/02/24(金) 08:09:39.64ID:OehCc09P0
JavaScriptの型はこんだけしかないから
https://developer.mozilla.org/ja/docs/Web/JavaScript/Data_structures

クラスはなんちゃってクラスでメソッドやプロパティとして使える属性をいくらでも増減できる連想配列でしかないから変数に型を宣言するだけ無駄
それを無理やりやるとTypeScriptになる
2023/02/24(金) 08:10:35.46ID:LXr7iqjl0
そもそも変数を再利用しようとするなと
バグの温床だし、新しく変数宣言しろ
2023/02/24(金) 08:14:35.74ID:OehCc09P0
>>725
++とか/=とか使ったことのないタイプかw
今回問題になってるのはPytonで除算に二種類の演算子があって片方を使うと小数点以下が出るということだけなんだよw
2023/02/24(金) 08:21:35.39ID:LXr7iqjl0
>>726
さすがにインクリメントとかにはどうこう言わんけど
ここで言う再利用ってのは、別の目的に使いまわすなってことな
わざわざstringにしたいって事は出力等が目的だろうから、それ用に変数作れ
2023/02/24(金) 09:11:31.26ID:k+kkC7Nop
ref した引数に値を入れなくてもいいけど
out する引数は値を入れないとだめなん?
2023/02/24(金) 10:07:52.27ID:zTZFqfcCd
ちょうど今GIMPのPythonでint→float→intとやらされて色々と考えさせられるものがあった
2023/02/24(金) 10:13:00.07ID:IQGX/86sp
pythonって、型変換によって出る数値精度の劣化ってどう思ってんだろって常々疑問に思ってる
2023/02/24(金) 10:17:03.70ID:RFzamc280
>>728
そういう意味の修飾子だからね
2023/02/24(金) 14:05:40.83ID:ccbVR1xk0
varならvarで全然いいけど、
一番嫌なのは「なんでここは分かりきってるのにvarじゃないんだよ!」って思わされること
理不尽なストレスが嫌なだけ。VSなら提案されるからそんなにないけどね
2023/02/24(金) 18:47:14.17ID:gJNax+MV0
自作のコントロールで矢印キー押すと
なんでかフォーカスが移動して入力不能になる現象が発生して悩んでたけど
ProcessDialogKeyをオーバーライドするっていうのやってみたら収まった
2023/02/24(金) 20:01:44.03ID:qE9KpEOq0
>>732
使用箇所を文字列検索かけたときにvarになってるとヒットしないのが嫌だな
visualstudioならvarから元の型に戻せるから戻しておいてほしい
2023/02/24(金) 20:09:57.73ID:X82MwmgO0
文字列検索をやめればいいんじゃね
参照箇所の検索でヒットするかしらんけど
2023/02/24(金) 20:21:44.92ID:OehCc09P0
型名で検索なんかしたことないわ
どんだけ長いメソッド書いてんだ
2023/02/24(金) 21:06:30.12ID:KCjnBZl8M
VSの便利な機能を知らないから型名で文字列検索してるんだろう
かわいそうに
2023/02/24(金) 22:42:06.35ID:xSIwGcb90
>>734
文字列検索をする必要がほとんどないのがVSのC#の大きなメリットなのに
2023/02/25(土) 01:56:33.91ID:WSoHMtrUd
C#の後にC++/CLRで作業するとめっちゃストレス
2023/02/25(土) 02:13:00.47ID:W+rTgIxF0
C++/CLRなんて必要な場面ある?
2023/02/25(土) 02:20:29.88ID:WSoHMtrUd
ない
2023/02/25(土) 02:57:31.15ID:i9tFdOEb0
C++/CLIじゃなくて?

CからC#を呼ぶためのラッパーを作るのに使ってる。
C→C++/CLI→C#
言語としてはカオスすぎると思う。
2023/02/25(土) 09:01:46.97ID:Qtv3l3QB0
managedな参照や名前空間、それにfinalizerなどが追加されたくらいで構文等も明解だと思うがなあ。
カオスというなら当のC++自身の方がよっぽどカオス。
2023/02/25(土) 10:18:33.21ID:5xbVML89M
カオスと言うか黒魔術みたいなレベルだし呪文を唱えさせられるのがキモイ
2023/02/25(土) 10:32:27.39ID:Qtv3l3QB0
SFINAEとかADLとかまさに魔術だよなあ。
2023/02/25(土) 10:51:49.65ID:W+rTgIxF0
今時C・C++触りたくない
地雷原が多すぎる
2023/02/25(土) 12:12:03.26ID:o/Ym2CPC0
すごくスレチだけど聞いてみたい。
C・C++ の地雷ってどんなの?
2023/02/25(土) 12:30:25.26ID:i9tFdOEb0
>>747
メモリ範囲外アクセス
2023/02/25(土) 12:47:41.33ID:4hS8Efqpa
>>748
その辺なら以前に比べてだいぶマシになってるぞ
生の配列とポインタの代わりにVectorとか使えばいい
2023/02/25(土) 12:52:47.37ID:i9tFdOEb0
C言語「そんなものはない」
2023/02/25(土) 14:01:22.71ID:DPzAUzVtM
ほかにも標準と呼べるオープンなドキュメントが無い、環境依存、未定義動作の多さ、文字列操作の貧弱さなどクソ要素挙げるとキリがない
速度だけがメリットだな
2023/02/25(土) 14:03:00.56ID:xCsxsaHDp
ヌルポ
2023/02/25(土) 14:06:15.81ID:lQBV1xBt0
勉強すればするほどわからなくなる言語、c++
2023/02/25(土) 14:10:32.78ID:TtZ3k42Xp
テンプレート多用し出した辺りからおかしくなって
マネージド対応する頃には別言語になってた
2023/02/25(土) 14:21:54.79ID:mMXgXQi10
子どもの頃にN88から始まってC++/Win32APIでもしっかりもの作って
自分のHP作るのにJavaScriptやPHP書いて、そんで近年はC#してるから
まぁ型宣言あるのも無いのもどっちも受け入れられてるなw
2023/02/25(土) 14:38:42.47ID:dAzPm75C0
そんなことしなくても大半のやつは受け入れられてる
2023/02/25(土) 15:40:00.51ID:wyXcT7/f0
読むのにはあったほうがいいのは確実で右クリックメニューで一発変換なので
気がついたら俺がvar消しとくから大丈夫だ
2023/02/25(土) 16:54:24.41ID:KRwgMm4X0
csprojのImport要素で読み込んだmsbuildタスクの.targetsにて$(IntermediateOutputPath)が機能せずnullなのですが
読み込み元プロジェクトのIntermediateOutputPathを得ることは不可能なのでしょうか?
2023/02/26(日) 08:45:30.70ID:2htEN4+y0
>>757
何で読むのに型が必要なの?
VSでカーソル合わせりゃ型名分かるやん

VS単体でできたか忘れたけどReShaper使うと型名をグレーで表示してくれるのもあるやん

何よりvarから変換してそのままバージョン管理にコミットしてプッシュするん?
無駄に色んな箇所の修正履歴付いて糞面倒


やっぱり底辺無能プログラマって考え足りないんだなw
2023/02/26(日) 08:49:23.47ID:2htEN4+y0
別にやるなとは言わんけどある程度状況が落ち着いてから一気にリファクタリングしろよ

そもそもチームやプロジェクトでコーディング規則決めておいてコードフォーマット共有しておいて変換される様にしておけば良い

チームやプロジェクトでvar使うルールなら黙って従え
自分の好きなルールにしたけりゃ出世しろ
2023/02/26(日) 10:18:52.53ID:PXNtu1caM
var使うなってルール聞いたことがない
2023/02/26(日) 10:29:02.26ID:OE3X2HvJ0
>>759
逆に言うとカーソル合わせないと分かんないじゃん
2023/02/26(日) 10:30:46.28ID:OE3X2HvJ0
カーソル合わせないと分かんないコードと
見ればわかるコードと
どっちがいいか議論の余地もないですね
2023/02/26(日) 10:36:48.50ID:PXNtu1caM
>>763
馬鹿が偉そうに
2023/02/26(日) 10:37:01.47ID:OE3X2HvJ0
https://learn.microsoft.com/ja-jp/dotnet/csharp/fundamentals/coding-style/coding-conventions

なんかマイクロソフトさんも
お前らの言う使い方は非推奨じゃない?
2023/02/26(日) 10:37:53.33ID:PXNtu1caM
そもそもが厳密に型がわからないとコードを理解できない人間がコード書くなと思うが
2023/02/26(日) 10:40:31.54ID:2htEN4+y0
>>763
だからReShaper使えばいいじゃん

そもそもコード追うのにVS使ってコードジャンプとかも使うじゃん

そうか!
無能だから紙に印刷したコード見てるわけか!
なるほど納得だよw
2023/02/26(日) 10:40:50.97ID:OE3X2HvJ0
まあ大御所様がループカウンタとか定数以外使ったらぶっ殺すぞって言ってるんだからそれで終わりよ
2023/02/26(日) 10:41:03.48ID:PXNtu1caM
varが出来た当時は自分も馬鹿だったからvarには否定的だったけど
今はvar使わない人間は真の馬鹿だと思ってる
2023/02/26(日) 10:45:38.22ID:2htEN4+y0
でも型名にしたところで分かるのは宣言の所やん

コードをスクロールして見ていってこの変数なんだっけってなったら結局カーソル合わせて確認するやん


そうか!
無能だから未だにハンガリアン記法で変数名付けてるんですね!
でもそうなるとvarでも良いんじゃ?
いやぁ無能の考えることは分かりませんなぁw
2023/02/26(日) 10:45:52.90ID:OE3X2HvJ0
またお前らに完全勝利をしてしまった
2023/02/26(日) 10:47:49.58ID:2htEN4+y0
アホすぎて勝負になってないw
2023/02/26(日) 10:48:44.93ID:OE3X2HvJ0
だって作ったマイクロソフトさんも勧めてない使い方してるのに何言ってるの?
2023/02/26(日) 10:52:33.04ID:PXNtu1caM
>>773
MSのコード見て見れば?
roslynだろうがcoreだろうがvar使ってるよ?
2023/02/26(日) 10:53:22.68ID:OE3X2HvJ0
>>774
そこ書いたやつがウンコだっただけよ
2023/02/26(日) 10:54:32.98ID:PXNtu1caM
>>775
使ってない人がウンコだと気が付けよ
新しい他の言語でもvar相当のものが実装されててみんな使ってる
2023/02/26(日) 10:55:34.64ID:PXNtu1caM
var相当のものを使わない派は多分全体の0.01%ぐらいの割合だよ
2023/02/26(日) 10:58:38.89ID:2htEN4+y0
ぶっちゃけどっちでも良い

varで書かれてようが型名だろうが読むのに困った事は無い
勿論どっちかに変換しなくてもだ
2023/02/26(日) 11:00:48.02ID:EH54EPWP0
スレチだけど、教えて。

>>773
そのマイクロソフトさんが勧めていない、ここで挙げられた var の使い方ってどういうのがあった?
2023/02/26(日) 11:37:49.57ID:xFOa2C1pp
varが便利だなぁって思うの
長ったらしいクラス名のオブジェクト使うときくらいかなぁ
後はC時代に生きた俺としては型名無しで受けるのは違和感しか無いし
2023/02/26(日) 11:38:46.95ID:2htEN4+y0
>>780
つまり老害w
2023/02/26(日) 11:44:29.82ID:JuHo9gXt0
>>773
MSのコード規則が世界の全てじゃねぇぞw
2023/02/26(日) 11:45:30.12ID:xFOa2C1pp
うおー、iPhoneじゃセミコロンが打てないw
コード書いてこんな場合は型名の方がいいよって書こうとしたのに
残念だ
2023/02/26(日) 11:48:22.16ID:2htEN4+y0
そもそもリンク貼られたコーディング規則にvarを使うなって記述は無い

勿論
>割り当ての右側から型が明らかではない場合,
>var を使用しないでください。
といった当たり前の注意は有る
2023/02/26(日) 11:49:42.82ID:2htEN4+y0
>>783
すまんが意味不明

アイポンだけどセミコロン打てるで?
786デフォルトの名無しさん (ササクッテロラ Sp75-sXdP)
垢版 |
2023/02/26(日) 11:55:53.77ID:xangEsOIp
そうだ、VBAのvariant導入しよう
何でも入れ放題、違う型にも再利用し放題だぞ
2023/02/26(日) 12:01:21.94ID:xFOa2C1pp
;あ、カナ変換モードだと無理なだけだったわ
2023/02/26(日) 12:04:16.19ID:xFOa2C1pp
その場でメソッドから戻り値受け取る様な場合にはvarで良いが
予め宣言しておく変数を使う場合は型名で宣言してるなぁ
2023/02/26(日) 12:19:06.70ID:uDw5JavV0
命名さえきちんとしてればvar使おうがどっちゃでも構わんよ
うちの会社では全面的にOKにしてる
2023/02/26(日) 12:21:39.64ID:H0yuRSQqp
初期化無し変数使わない人たち?
2023/02/26(日) 13:29:38.39ID:NMq20dGb0
>>786
勘弁してください
2023/02/26(日) 15:39:47.68ID:5M6WVcNga
>>788
初期化せず予め宣言すること自体ないわ
2023/02/26(日) 15:50:59.27ID:/EdsYwMi0
>>792
try-catchの外側で変数宣言しないの?
2023/02/26(日) 16:03:34.39ID:UDvE2DGT0
それこそ初期化してないとダメなやつでは?
2023/02/26(日) 16:05:18.21ID:5M6WVcNga
>>793
ああわかった
お前のメソッドは無駄に長いんだよ
そのブロック外に出せ
2023/02/26(日) 17:59:22.50ID:1pphtrpop
>>795
外に出しても同じじゃね?
2023/02/26(日) 18:15:27.22ID:CTUJHtcQ0
>>796
同じ?
いったい何をしようとしてんだ
2023/02/26(日) 18:27:05.38ID:PXNtu1caM
よくわからんけどこんな感じの話かな?

一般的な使い方
try{
 何らかのファイルを読み込んだりするメソッド()
}catch

上の初心者の使い方
べつの何らかのメソッド(){
try{
 File.ReadAllText()
}catch //もうここでキャッチしてる
}
2023/02/26(日) 18:35:34.01ID:1pphtrpop
varで宣言するか、型名で宣言するかの話な
string s;
swith(hove)
{
case 1:
s = “one”;
break;
case 2:
s = “two”;
以下略
みたいな時に、
string s;って書くか、var s = “”;みたいに書くか
2023/02/26(日) 18:37:30.50ID:2htEN4+y0
そういう事じゃなくてtryの中での何かしらの情報をcatchの中でも使いたいって事なんじゃね
2023/02/26(日) 18:41:55.62ID:kPCuIbSup
いや、一連の流れはvarを使うか型名を使うかの話なんだが?
2023/02/26(日) 18:45:14.91ID:PXNtu1caM
ダメな例外の使い方

Tekitou a = null;
try{
a=適当なメソッド();
} catch(略)|
return null;//もしくはエラーコードなんか返したりするw
}
return a;
2023/02/26(日) 18:59:07.89ID:PXNtu1caM
それでメソッドの戻り値がnullかどうか判定してると言う…

必要な場合もあるかもしれないけどよく考えてみて欲しい

var a=適当なメソッド();
a.何かする();
return a;
でtry-catchは呼び出し元で判定でいいんじゃないかと
2023/02/26(日) 19:01:36.48ID:uDw5JavV0
Try系メソッドの存在の否定始まったな
2023/02/26(日) 19:03:07.43ID:PXNtu1caM
上の初心者は
Tekitou a = null;
がtryブロック前に必要だからvarじゃだめだって言ってるんだろ?
2023/02/26(日) 19:05:15.93ID:PXNtu1caM
>>804
違う
上位で捉えたら例外の意味が伝わるのにnull何かにして渡す意味はないよと
try-catchの場所を間違えてるよと
2023/02/26(日) 19:08:43.27ID:6DyDqsNYa
だから何だ死ね。
2023/02/26(日) 19:09:32.53ID:uDw5JavV0
例外の内容を精査する必要が無いなら、握りつぶす事はあり得る
2023/02/26(日) 19:20:26.09ID:PXNtu1caM
もし対応不能な例外なら
var result=何とかメソッド();
if(result is null)
{
console.writeline("原因はわからんけど失敗しました");
return ;
}

↓こうなったほうがいいんじゃないか?(個人の感想です)


try{
var result=何とかメソッド();

catch(適当)

console.writeline("ファイルがなかった");

catch(また適当)

console.writeline("ファイルのフォーマットが間違ってた");
2023/02/26(日) 19:31:21.12ID:jfiEDsdga
>>800
初期化してない可能性があるのに使えるわけないじゃん
2023/02/26(日) 22:13:31.77ID:OE3X2HvJ0
センスゼロの奴に限って非推奨なことやりたがるってよくわかるな
2023/02/26(日) 22:43:29.16ID:2htEN4+y0
>>810
話の流れが分かって無いアホw
2023/02/26(日) 22:48:20.14ID:uDw5JavV0
話が完全に横道に逸れてて草
2023/02/26(日) 22:53:18.80ID:EH54EPWP0
横道というか、スレタイも >>1 も読めない奴らに草
2023/02/26(日) 23:21:00.54ID:CTUJHtcQ0
>>812
話の流れをもうちょい前から読んで見ることだなw
2023/02/27(月) 20:12:03.56ID:Akgqa2X30
try-catchとか関係なくて
nullに初期化したいときにvarが使えないってだけの話だろ
varは型が推論できないとダメなんだからそういうもんだってだけ

変数をnullで初期化することの是非や例外の扱いは別の話
2023/02/27(月) 21:56:17.35ID:egjSOww/0
初心者スレで非推奨のvarの使い方勧めるのやめてくださいね
2023/02/27(月) 22:29:07.67ID:JLUpdfoUr
どうしてもvarを使ってnullで初期化したいなら、たとえば
 var s = (string?)null;
でいちおう文法的にはいけるね

ローカル変数宣言はすべてvarで統一するようなコーディングスタイルを採用してるなら、
個人的にはちょっと賛同しがたいけど、そういうポリシーということでアリなのかもしれない
2023/02/27(月) 22:43:14.23ID:GQlYFKfY0
Cシャープ滅茶苦茶勉強して知識死ぬほどあるのに
競技用プログラミングではセンスある未経験に負けるのが悔しすぎて泣きたすぎる
2023/02/27(月) 22:52:24.05ID:IwcHfuRb0
言語学者が文学で勝負すんな
2023/02/28(火) 07:11:14.63ID:3WmX3+jc0
(センスとか言ってる時点で知識量が足りねーんだよ)
2023/02/28(火) 14:16:08.99ID:y7elf6D90
ufcpp見るとだいたいvar使ってればOKでコードが読みづらくなるならvar以前の問題が何かあると書いてる
まったくもってその通り
2023/02/28(火) 17:33:08.16ID:ovA6LiBhM
>>822
なんか根拠あるの?
2023/02/28(火) 17:50:10.38ID:qEty2QKoa
経験則
2023/02/28(火) 17:50:55.08ID:qEty2QKoa
ufcppより経験を積んでる自信があるなら論破してこい
2023/02/28(火) 19:28:39.24ID:50ahu/qg0
そもそもvarは、コードを書く人のための機能であって
コードを読む人のための機能ではないと思うぞ
2023/02/28(火) 19:29:40.86ID:M/injSE6p
三文字打てば良い楽々コーディングよな
2023/02/28(火) 19:53:22.92ID:It5dm/K20
>>825
そこマイクロソフトよりデカい?
2023/02/28(火) 20:03:37.91ID:qEty2QKoa
だからそう言ってこいよ
2023/02/28(火) 20:24:10.06ID:gde+l/Fdp
VisualStudioは、 varを使うか型名を使うか、どっちにしても余計なお節介出して来るんだよなぁ
2023/02/28(火) 20:36:45.66ID:0m/LxTGDM
ツールに振り回されてんの?
人として情けないね
2023/02/28(火) 20:44:18.58ID:kJd3bldF0
何言ってんだコイツ。
2023/02/28(火) 22:14:36.56ID:QptBiF/w0
ただでさえプログラムは面倒くさい事のオンパレードなのに、var位使って行こうぜ
834デフォルトの名無しさん (ワッチョイ ae05-Fsum)
垢版 |
2023/02/28(火) 23:33:21.23ID:N7XzWDMw0
>>822
完全に同意
否定人のコーディング見てみたい
2023/03/01(水) 01:34:59.57ID:VyWbviLu0
LINQの場合、var書かないわけにもいかないし、その時だけだと統一感が悪い。
2023/03/01(水) 07:54:50.21ID:qaR+V2vd0
>>835
お前はお前で匿名クラスなんて使ってんじゃねえよ
上位互換のタプルができて何年経つんだ
2023/03/01(水) 08:07:51.48ID:tbGPzE+Ma
タプルが上位互換とは
2023/03/01(水) 08:44:56.23ID:c5msHDS5a
varを使ったほうが楽じゃん
2023/03/01(水) 09:03:00.15ID:qaR+V2vd0
>>837
知らんのか
2023/03/01(水) 10:03:28.25ID:sgVp+QOv0
Item1とかItem2とか、どれが何のためのデータなのか解らんようなの使う気にならんな……
2023/03/01(水) 10:25:21.30ID:zgl5hYJEa
>>840
名前つけられるの知らんのか
2023/03/01(水) 10:28:16.33ID:NWENc0Hxp
メソッドの引数のネーミング、考えるの面倒だよな?
2023/03/01(水) 10:45:11.60ID:zgl5hYJEa
命名が難しいのはだいたい設計が悪い
ローカル変数ならともかく引数は明確な役割があるはず
2023/03/01(水) 10:46:22.97ID:iOTs8eHzp
>>843
だからそのprivateメソッドの方が尚更面倒なんよ
2023/03/01(水) 10:48:50.55ID:zgl5hYJEa
だからそれは変な切り出し方をしてるからだよ
2023/03/01(水) 10:51:27.66ID:iOTs8eHzp
ローマ字つづりでいいかなぁ?
2023/03/01(水) 10:54:17.84ID:sgVp+QOv0
>>841
そっちのタプルは構造体やん
2023/03/01(水) 11:44:56.01ID:zgl5hYJEa
>>847
構造体だからパフォーマンスが高いんだろw
2023/03/01(水) 12:27:27.77ID:sgVp+QOv0
俺、パフォーマンスの話なんかしとらんからなぁ
まぁ、ValueTupleも場合によって使うけど、だいたい即値分解してしまうからあんまりメンバ名付けたことないな
2023/03/01(水) 12:51:38.98ID:iHuCndf+a
>>849
じゃあ構造体で何が悪い?
2023/03/01(水) 14:00:57.77ID:svqy3iKu0
なんでこの人たちこんなイライラしてるの
2023/03/01(水) 15:07:47.34ID:qaR+V2vd0
イライラしたやつ出てきたなw
853デフォルトの名無しさん (ワッチョイ dae6-Csze)
垢版 |
2023/03/01(水) 17:45:05.94ID:LI8bJI1D0
正規表現で、一致した文字列のうちの一部だけを変更するにはどうすればいいでしょうか。
例えば、
\[.+\|.+\]
というパターンでマッチングして、マッチした値の[と|と]を置き換えたいです。
↓例
入力:[あ|あいうえお]
置換後:<あ-あいうえお>
※[を<に、|を-に、]を>に置き換えています。
854デフォルトの名無しさん (ワッチョイ fa74-hJgV)
垢版 |
2023/03/01(水) 17:49:47.98ID:81D5Vj700
\[(.+)\|(.+)\]
<$1-$2>

これくらいハゲでもわかる
2023/03/01(水) 17:55:01.04ID:LI8bJI1D0
>>854
ありがとうございます!!(>▽<)
2023/03/01(水) 19:34:04.22ID:LQeRVcKu0
また髪の話してる・・・
2023/03/02(木) 01:06:05.40ID:pwr4e0eZ0
ModernWPF UIのコンテントダイアログでプログレスダイアログをいい感じにMVVMで実装する方法ないかな?

やりたいこと:
これをProgressDialog.xamlで定義してEventAggregatorでイベント飛ばしてプログレスバーとテキストを更新
https://github.com/Kinnara/ModernWpf/wiki/ContentDialog

令和にもなって、IProgressDialogやTaskDialogというか別ウィンドウ出すのはなんかダサいし。
2023/03/02(木) 01:40:05.17ID:W+Au/SFm0
>>857
WPF(.NET, WinUI) GUIプログラミング Part31
https://mevius.5ch.net/test/read.cgi/tech/1674334396/
ここで質問の方が良くないか?
2023/03/02(木) 09:19:55.51ID:pwr4e0eZ0
>>858
OK、そっちで質問してみる。
マルチポストになっちゃうが。
2023/03/02(木) 09:20:53.64ID:2uS/Yj6n0
誘導されてきた言えば問題ないやろ
2023/03/02(木) 09:51:09.87ID:TSzVcIRer
>>1にも
>内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
とあるしね
2023/03/04(土) 22:44:54.38ID:MWrxXT5A0
あるクラスの中に定数やenumを定義したとき、そのクラスのインスタンスを複数個生成したら
全く同じ定義がそれぞれのインスタンスに含まれてしまうのでしょうか?
もしそうでも別に実害は無いですが、なんか気持ち悪いです。
2023/03/04(土) 22:52:26.87ID:XS/j5rrj0
アホw

出来る出来ないの話と
実際にやるやらないは別

気持ち悪いと思うならやならければ良い
それがクラス設計ってもんやろ
2023/03/04(土) 23:10:17.51ID:MWrxXT5A0
>>863
では、862の現象が事実だと仮定して、それを回避するには
例えばCarState列挙型を定義したいときは、Carクラスとは別にクラスを作ってそこに定義するしかないのでしょうか?
2023/03/04(土) 23:31:39.37ID:8JZeKg+Q0
ただの定義にインスタンスもなにもないよ
気にする必要は無い
2023/03/05(日) 00:06:21.53ID:jHbb3BElM
>>862
含まれない
2023/03/05(日) 00:18:49.48ID:ebD0iZh90
>>865
>>866
ありがとうございます。
2023/03/05(日) 01:59:20.41ID:Q+Z0cI/30
そこらのSEよりC#のコンパイラのほうが何倍も賢い
2023/03/05(日) 07:49:42.36ID:eEJXh7qx0
>>864
何で列挙型をクラスの中に作るって発想しかないの?

CarクラスとCarState列挙型を作るだけやろw
アホw
2023/03/05(日) 07:56:16.98ID:ZL6T0NVj0
>>862
constはクラスの中に入れんとダメだが、enumはclassの中じゃなくても定義できるやで
2023/03/05(日) 08:19:17.85ID:eEJXh7qx0
結局は基礎が出来てないだけかw

出来る事が分かってなきゃそうなるわな
特に基礎レベルで分かってなきゃ尚更
2023/03/05(日) 08:27:55.53ID:XuMWIxYS0
constやenumがビルドしたらどうなるのかとか、classの実体がどうなるのかとか
そういうのちゃんと勉強した方がいいね
2023/03/05(日) 08:59:55.66ID:4pO1EQ6ma
>>869
それは別にいいだろ
作れるようになってんだから
クラスの中に入れちゃいけない縛りだとprivateなenum作りたいときどうすんの
2023/03/05(日) 09:22:43.13ID:eEJXh7qx0
>>873
だから“しか”って言ってんだろ
2023/03/05(日) 09:24:43.12ID:eEJXh7qx0
こういう文章の意味が分からずに突っ込んで来る連中って本当にプログラム書けてるの?

プログラム“言語”だぞ
2023/03/05(日) 09:25:19.90ID:4pO1EQ6ma
>>874
逆になぜそこで「しか」と思っちゃったんだよ
2023/03/05(日) 09:26:42.55ID:4pO1EQ6ma
>>875
お前昨日のやつだろ
自分の言葉がどれだけ怪しいか指摘されたことないのか?
煽り抜きで見るからにアスペだぞ
指摘されても自分で否定して忘れてるならこれからは少し聞く耳を持ってみろ
2023/03/05(日) 09:32:14.41ID:eEJXh7qx0
昨日のやつ?

俺はDBのPKフィールドはGUID使えばリスク減るって言ってた奴だよ

別人と勘違いすんじゃねえよ
文言で区別付くだろ

これだから無能はw
2023/03/05(日) 09:34:22.04ID:VNYPZIzLd
相手の質問に煽るだけって時点でね…
そもそも質問も答えもまだ理解できてないんじゃないか
2023/03/05(日) 09:39:07.78ID:HVqlejWD0
>>878
そっちの無能かw
どっちにしろ無能じゃねーかw
2023/03/05(日) 09:47:05.28ID:eEJXh7qx0
は?
お前ら全員が無能だって証明されて終わったやんw
何言ってんだ無能w
2023/03/05(日) 09:55:22.67ID:4pO1EQ6ma
こんな典型的なアスペはなかなかいないな
2023/03/05(日) 10:35:18.92ID:tq7yfQYd0
>>870
learn.microsoftなど見るとこれが一番適切な回答っぽいな。ただキーワードが分かっているものは自分で検索したほうが質問するよりずっと早い
enum
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/builtin-types/enum
const
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/const

あとNG推奨
ワッチョイ 417c-1tkp
アウアウウー Sa1d-/UsF
ワッチョイ c907-/UsF
2023/03/05(日) 10:38:45.37ID:HVqlejWD0
>>883
どこを見て有効だと思ったんだw
NG推奨はお前だアスペ
2023/03/05(日) 11:33:39.09ID:LimRRCEtd
前回は流してたんだがGUIDをキーにするとした場合、
少ない時間で大量にデータが登録される際の並び順ってどうやって保証するのかね
(INSERT~SELECTで複数件登録するとか)
そういう時は使わないって回答なんだろうか
2023/03/05(日) 12:11:21.86ID:V5cM5Nk90
IDENTITYの自動採番だってそういうの保証はされないんじゃね?
何らかの順序情報が必要ならそれを持たせるようにしないと。
2023/03/05(日) 15:46:52.04ID:CbYCfeUhM
>>886
一括の複数インサート時の順序は保証されてる

複数テーブルにまたがる複数のトランザクションならインサート順とコミット順が前後する可能性はあるけどインサート順とidentityの大小は基本的に保証されてる
保証されないのはIDENDITY_INSERT OFFのような特殊な使い方をした時だけ

ついでに言うとコミット順で完全にソートできるようにするには1つのトランザクションがコミットするまで次のトランザクションを待たせる作りが必要になるので一般的にはやめたほうがいいやり方
2023/03/05(日) 16:11:18.22ID:LimRRCEtd
普通は1トランザクション内で保証されていればいいと思ってるけど
仕様によっては複数トランザクションでも保証しないとだめなケースもあるとしたらそうかもしれないね
スレチだったわすまん
2023/03/05(日) 16:34:12.19ID:wm/Rzcr70
GUIDはメリットがまったくないわけじゃないが、言うほど強力なものでもない
何しろ彼でさえ理由を具体的に説明できない程度だからね

で、問題はユニークであることが完全に保証されないからそれなりのケアが必須だってことだな
2023/03/05(日) 16:37:17.48ID:V5cM5Nk90
>>887
だから他のトランザクションから見てID列の値が単調増加に見えるのはdirty-readの場合だけじゃん。
一般的なread-commited以上なら最大IDより小さなIDが後から挿入されたように見えることもあるわけで。
891デフォルトの名無しさん (ワッチョイ 8bbb-W6o5)
垢版 |
2023/03/05(日) 17:55:09.83ID:7ksBORrg0
すまんが、ASP.Net Coreに用意されてる3(4?)つのフレームワークでさあ
ログインページを各言語に対応させるにはどうすればよかんべ?
他の自分で作ったページを多言語化する方法は乗ってるけど、フレームワークで用意されてるログインページ等はどうすんじゃい???
https://learn.microsoft.com/en-us/aspnet/core/blazor/globalization-localization?view=aspnetcore-7.0&pivots=server
2023/03/05(日) 18:35:43.98ID:Vq0cOu8uM
>>890
何が「だから」なのかよくわからない
他のトランザクションから見て最大IDより小さなIDが後から挿入されたように見えて何か問題あるの?

>>886に書いてある何らかの順序情報を持たせたとしてもコミット順じゃなくインサート順だから全く同じことなんだが?
2023/03/05(日) 22:00:17.61ID:V5cM5Nk90
>>892
>他のトランザクションから見て最大IDより小さなIDが後から挿入されたように見えて何か問題あるの?

そこは外のトランザクションから見た場合に挿入順序とIDの増加順が一致することが保証されないという
事実を書いただけだが。
それで困るかどうかは要件次第。
たとえば定期的な処理で前回の処理以降に追加されたレコードを求めるのに前回のmax(ID)を使うとか、
そういう用途には使えない。
2023/03/05(日) 22:13:31.94ID:V5cM5Nk90
いや、明示的にテーブルロックとるかrepeatable-read以上で最初にmax(ID)取得してしまえばいいか?
どっちにしろそのへん意識する必要がある。
2023/03/05(日) 23:19:20.27ID:6Aoy6FGpM
>>894
分離レベルで対応するならシリアライザブルじゃないと防げないんじゃないかな?

でも現実的にはテーブルロックやシリアライザブルは同時実行性能を極端に落とすので
挿入日時のようなデータを使って締め前に開始したトランザクションが確実にタイムアウトしてるようなタイミングで締め前に挿入されたデータだけを処理したり
処理ステータスを示すカラムを作って対応する

バッチ処理の頻度や重要度やエラー時に必要な対応によって実装を選択することになる
2023/03/05(日) 23:30:28.82ID:wm/Rzcr70
結局レコードをトランザクションに書き込むタイミングでIDは発行されるしタイムスタンプもその時間となる
コミットしたタイミングなどDBに記録することは不可能だし一体何を問題にしているのやら
2023/03/05(日) 23:41:58.79ID:NuUQDnR4M
GUIDとの比較で重要なのは後続のバッチ処理みたいなのがあったときに
IDENTITYの場合はほぼシーケンシャルアクセスで処理できるがGUIDだと完全にランダムアクセスになるので桁違いの遅さになる
外部キーなんかを含めて1ページに収まるレコード数が減るのとランダムアクセスで性能が極端に悪化する場合があるのがGUIDの一番のデメリット

NEWSEQUENTIALID()でシーケンシャルなGUIDも作れるけど分散環境でマージが必要な状況でない限りIDENTITYに対するメリットがない

他にはULID使う方法なんかもあるけどやっぱりメリットデメリットがあるので当たり前だけど用途に合わせて使い分けるもの
2023/03/05(日) 23:43:48.09ID:V5cM5Nk90
>>885の言うような順序の保証は単なるIDENTITY任せじゃダメな場合があるってこと。
2023/03/05(日) 23:54:52.18ID:wm/Rzcr70
>>898
IDの発行と書き込み時のタイムスタンプはトランザクションに書き込んだタイミングで同時に行われるから
結局IDとタイムスタンプの順番はおなじになるんじゃね?
コミットのタイミングなど何処にも記録されない
2023/03/06(月) 00:04:07.46ID:+8ntKfDE0
トランザクションの外から見た場合、タイムスタンプが古いレコードが後から現れたりするのは変わらん。
2023/03/06(月) 00:47:16.07ID:ai8Q1Y+e0
>>887
>インサート順とコミット順が前後する可能性はあるけどインサート順とidentityの大小は基本的に保証されてる
インサート順ってなんのことを言ってるの?
まさかSQLの発行タイミングのことをいってるのか?
2023/03/06(月) 08:34:46.51ID:WDk1SNWF0
また始まったのか・・・
2023/03/06(月) 08:41:17.38ID:jJIeXpQ30
何度スレチだと言われても耳を貸さない連中だから放っておくしかないべ
2023/03/06(月) 09:01:59.17ID:Qy0wg21h0
ニートだからスレタイ読めないのか、スレタイ読めないからニートなのか、それが問題だ!
2023/03/07(火) 16:27:16.46ID:R6IzsuUJ0
Blazor Desktop でアプリ作る場合、JS 使うのって邪道ですか?
普通はどうなんでしょうか?
2023/03/07(火) 16:29:37.59ID:nGiwAbPE0
>>905
邪道というより仮想DOMがよくわかってないと難しいぞ
907デフォルトの名無しさん (ワッチョイ 1301-ksrJ)
垢版 |
2023/03/07(火) 21:34:13.24ID:eLRrbAoH0
>>905
別に邪道じゃないよ
猫ジョーカーもPrism.js使ってた
2023/03/07(火) 22:25:01.39ID:/W+QRqxd0
コントロールのプロパティをVisual Studioのプロパティからいじるのと、
コードに直接記載するのはどっちがベストプラクティスでしょうか?
2023/03/07(火) 23:03:26.48ID:iHhQsjAZ0
>>908
好きなほうでいいよ
自動生成か自分で記述するかは些細な違い
コメントも残したいなら当然、load以降のタイミングだね
910905 (ワッチョイ 13e6-xySQ)
垢版 |
2023/03/08(水) 00:27:21.36ID:OaTx32y+0
>>906-907
ありがとうございます。
今既に使ってるんですが、後になって「JS使わない為のBlazorだろ」とか「JSなしで出来ねーのかよ」
とかいう謎のイチャモン言われるのがちょっと怖かったのです。
2023/03/08(水) 07:00:30.67ID:+lL6bJso0
Load以降じゃなくてもコンストラクタでも良くない?
2023/03/08(水) 07:59:37.27ID:UYleOs8I0
>>910
マウイ君みたいなキチガイは無視でいい
2023/03/08(水) 08:08:55.61ID:dTyeizIq0
>>908

デザイン画面との差異が発生しにくいから
コードじゃないと設定できない事以外は基本的にはフォームデザイナでやってる
コードでやられると、一々実行して確認しないといけないし
人によって書き方・書く場所違ったりして追うのが邪魔くさい
2023/03/08(水) 08:51:11.40ID:qdKF3wc3d
フォームデザイナは良いんだけど、変更値をコードに出力する方法あるのかな
パラメーターシート作る時毎回困る
2023/03/08(水) 09:11:44.28ID:h0XeijSda
>>914
designer.cs
916デフォルトの名無しさん (ワッチョイ 8bcf-3zFX)
垢版 |
2023/03/08(水) 09:16:43.12ID:jVki9SUw0
昨日一日、メソッドが動かなくて悪戦苦闘してたが
単に、メソッドを割り当ててたボタンのクリックイベントが
なぜか外れてただけだった!
くそ!!!!
2023/03/08(水) 09:22:20.21ID:h0XeijSda
>>916
なぜ外れたかはともかくなんでそれで一日悪戦苦闘することになるんだ?
真っ先にイベントハンドラにブレークポイント張らないか?
それで呼ばれなかった場合Shift+F12で一発でわかるだろ
2023/03/08(水) 09:50:33.13ID:NmLqgG0dM
>>914
デザイナで設定した値全部ドキュメントに出力すんの?不毛すぎる
ドキュメントから初期化メソッドのソース生成するならまだ分かるが
919デフォルトの名無しさん (ワッチョイ 8bcf-3zFX)
垢版 |
2023/03/08(水) 10:51:13.94ID:jVki9SUw0
>>917
デバッガの見方がいまいちよくわかってないからなwww
分かりやすいサイトあったら教えてくれ

メソッドのケツで止まってるような表示だったから
中身ばかり見てた
結局、関係するところ全削除して
ボタンを配置しなおしてクリックイベント設定したら
最初のメソッドで動いた
2023/03/08(水) 12:46:01.79ID:qdKF3wc3d
>>918
既定値から変更した箇所って原則全て網羅してパラメーターシートに出してるけど
これ仕事だと普通じゃないの?
不毛なの?
2023/03/08(水) 12:48:38.98ID:qdKF3wc3d
>>915
これにコードとして出力されるのね
理解した
2023/03/08(水) 13:11:31.27ID:/RllHwwua
>>920
普通ではないし意味もわからんがそうすることになってるなら仕方ないな
2023/03/08(水) 13:13:09.06ID:/RllHwwua
もし普通ならもっと簡単にできる仕組みが一般に広まってないとおかしい
2023/03/08(水) 14:24:27.05ID:6WeulyynM
>>920
普通じゃない
むしろ何に使うんだ?
2023/03/08(水) 14:52:43.10ID:iEMOw9f1M
お客様に見せつけてお金を貰います
2023/03/08(水) 17:00:31.74ID:VS7v+oF80
しかしchatgptやべーなー…
ちょっと前ならここで聞くか迷うような質問がガンガン出来てしまうしかなり詳しい回答が返ってくる
勉強の補助として使うには最高だわ
2023/03/08(水) 17:02:00.64ID:/RllHwwua
マジかよ
信じるのかあれを
2023/03/08(水) 17:07:23.70ID:i5ZyQ2rsM
あいつここの住人と同じで息するように嘘つくぞ
しかも2021年までのデータしか無いんだろ?
最新の内容は無理ぽ
2023/03/08(水) 17:21:25.63ID:UUazuFXC0
出鱈目でも自信満々にそれっぽく説明してくるからな
知識が無いと嘘なのか判断出来ないから質が悪い
2023/03/08(水) 17:53:41.74ID:KzA+PBQYa
スシロー・ペロペロ法を用いて平方根を導出するコードをC#で作成せよ。ただしバカッター係数は3.0とする。

以下はC#でのスシロー・ペロペロ法を用いた平方根の計算の例です。バカッター係数は3.0とし、入力値はdouble型とします。

csharpCopy code

using System; class MainClass { public static void Main (string[] args) { Console.Write("Enter a number: "); double num = Convert.ToDouble(Console.ReadLine()); double guess = num / 2.0; // 初期値をnumの半分に設定 double error = num * 0.001; // 許容誤差はnumの0.1% double diff = 1.0; // 初期値は適当な値 while (diff > error) { double prevGuess = guess; // 前回の推定値を保存 guess = (guess + num / guess) / 2.0; // 新しい推定値を計算 guess = (3.0 * guess - prevGuess) / 2.0; // バカッター係数を適用 diff = Math.Abs(guess - prevGuess); // 推定値の変化量を計算 } Console.WriteLine("Square root of " + num + " is " + guess); } }

上記のコードでは、ユーザーに数値を入力してもらい、その平方根を求めます。最初の推定値は入力値の半分に設定し、許容誤差を入力値の0.1%とします。バカッター係数を適用するため、スシロー・ペロペロ法の通常の更新式の前に、前回の推定値と現在の推定値の重み付き平均を求めます。そして、推定値の変化量が許容誤差以下になるまで、この更新式を繰り返します。最終的に求められた平方根を出力します。

ChatGPT Feb 13 Version. Free Research Preview. Our goal is to make AI systems more natural and safe to interact with. Your feedback will help us improve.
2023/03/08(水) 17:58:25.85ID:KzA+PBQYa
ChatGPTすげーな
2023/03/08(水) 18:11:57.15ID:KzA+PBQYa
スシロー法(Suzuki-Roiter Algorithm)は、平方根を求めるアルゴリズムの一種です。このアルゴリズムは、ニュートン法や二分法などの他の平方根アルゴリズムに比べ、比較的単純であり、また高速なアルゴリズムの一つです。

スシロー法では、次のような手順で平方根を求めます。

求めたい数値xと、初期値aを設定します。

aを用いて、次の式によりbを求めます。b = (a + x / a) / 2

aとbの差を求め、ある閾値(例えば、0.0001)以下であれば、bを平方根として返します。差が閾値よりも大きい場合は、bを新たな初期値として、ステップ2に戻ります。

以下は、C#でスシロー法を実装した例です。バカッター係数は、コード内のコメントに記載されています。
2023/03/09(木) 03:15:28.74ID:CHgoITyz0
すまん、誰か知ってたら教えて。
ASP.NET CoreのIHostedServiceを実装したバックグラウンドサービスで、
ef.coreのDbContextをコンストラクタでDIした。

ローカルPC上の開発環境では問題なく動いてしまう。
ローカルで動いたのでAWSなどのクラウド上にデプロイすると
Error while validating the service descriptor 'ServiceType: Microsoft.Extensions.Hosting.IHostedService Lifetime: Singleton ImplementationType:~
Cannot consume scoped service 'hoge.DbContext' from singleton 'Microsoft.Extensions.Hosting.IHostedService'.
とエラーが出て起動できない。

つまりIHostedServiceはsingletonでef.coreのDbContextはScopeServiceだからDI出来んよということだと思うだけど、
じゃぁなぜローカルでは動いてしまうんでしょう?

C#と関係ないかもだけど、適切なスレが見つからなくて。。
2023/03/09(木) 07:31:12.85ID:Azdv+gVA0
お前マウイだろ
2023/03/09(木) 12:24:29.91ID:0FhUXViP0
違う環境で動かないのをなぜ、ときかれても

環境が違うから

としか答えようがないわけだが
936デフォルトの名無しさん (ワッチョイ 8bcf-3zFX)
垢版 |
2023/03/10(金) 10:06:26.28ID:eWY0TFlg0
またボタンのクリックイベントが勝手に外れたよ
しかも二つ同時に
デザイナーが悪いのか
さらにその裏で何か悪さしてるのか
2023/03/10(金) 10:09:15.50ID:cbogJmpl0
お前が悪いんだよw
2023/03/10(金) 10:10:11.36ID:GTZI+M+4p
バージョン管理ツールの使い方を間違えてる奴が居るんだろ
旧バージョンからの修正を上書き更新する様な奴が
2023/03/10(金) 18:24:12.28ID:xFwaknBvM
>>936
入門1週間~1か月あるあるだな

過去に誰もが通る道じゃないかな
答えは操作を間違ってるから

ボタンをコピペするとイベントは付かない
同様にカットアンドペーストしても付かない
ボタンを他のページなどに移動させる際にカットアンドペーストを使うとそういう状態になる

どこかにいったんドラッグ移動させてから再度ドラッグ移動させるとうまくいくよ
2023/03/12(日) 09:27:27.50ID:TpUonps10
FontDialogで既定のフォントを指定するのに
fontdialog.Font = myFont のようにするだけではダメで
結局インストールされているフォント全部とmyFont.Nameを比較して一致するものを探した
2023/03/15(水) 23:56:35.07ID:Z/0CGH7g0
webアプリを作ってみようといくつかの記事を読んでみるとよくコントローラークラスなるものを見かけます
UIとオブジェクトを紐付ける役割というのはぼんやりとイメージは理解できました
全然知見が無いのですがMVCパターンを用いた開発が一般的なのでしょうか?
2023/03/16(木) 07:34:34.54ID:ROTa9WZ40
一昔前はそうだった。
今は、UI側はAngularやらReactやらで作る
バックエンドのASP.NET CoreはUIからのリクエスト(ほぼJSONオンリー)を受け取って、結果をJSONで返すのみ。

あえて言うならMVCだけどVの部分が別世界で進化した結果、MicrosoftのRazorビューエンジンがほぼ使われていない感じ
943デフォルトの名無しさん (ワッチョイ 0954-l83W)
垢版 |
2023/03/18(土) 06:09:34.00ID:eIMKVM/V0
Blazorの、
1. bind-value:set と bind:set の違いを教えて下さい。
2. bind-value:get と bind:get の違いを教えて下さい。

-value があってもなくても普通に動いてしまうので、違いが判らないです・・・
2023/03/19(日) 02:39:15.79ID:OF2pFVcA0
rem #ignore thumbnails created by windows
rem #Ignore files build by Visual Studio
rem --------------------------------------
rem *.exe
rem --------------------------------------
del /s Thumbs.db
del /s *.obj
del /s *.pdb
del /s *.user
945デフォルトの名無しさん (ワッチョイ ebbb-mqp0)
垢版 |
2023/03/21(火) 00:50:51.05ID:Bhi15WWz0
MAUIの場合って、XAMLがどうC#に変換されたかってどこ見るの?
objフォルダを見ても、それっぽいファイルなさそうに見えるんだけど・・・・
2023/03/21(火) 03:41:54.37ID:rEPYZ+tza
>>941
Ruby on Rails の勉強方法なら、以下に書いた

★★Java質問・相談スレッド184★★
https://mevius.5ch.net/test/read.cgi/tech/1632019965/174

YouTube で有名な雑食系エンジニア・KENTA の初心者向けRailsサロンが有名。
学校は、Rails専業のRUNTEQ、東京フリーランスのデイトラなど多数ある

Rails チュートリアルのRails 5 なら、無料で読める。
他には、黒田努の3冊の本もある

YouTubeのDeanin
947デフォルトの名無しさん (ワッチョイ ebbb-mqp0)
垢版 |
2023/03/23(木) 22:03:01.14ID:ryYHyvf60
すまんが、このカッコだらけの行ってC#の文法的にはどういう意味なの???

> protected override void OnAppearing()
> {
> ((Models.AllNotes)BindingContext).LoadNotes(); //この行ってどういう意味なの!?!?
> }

https://learn.microsoft.com/ja-jp/dotnet/maui/tutorials/notes-app/?view=net-maui-7.0&tutorial-step=4
より
2023/03/23(木) 22:08:43.88ID:JMZIdmVT0
(型)変数 で型変換(キャスト)
次のカッコは演算子の優先度の調整
最後の()はメソッド()を実行
2023/03/23(木) 22:15:45.29ID:qBpx1Wc1p
BindingContextをModels.AllNotesのオブジェクトとみなしてそこのメソッドLoadNotes()を実行せよ
って意味
2023/03/23(木) 22:17:49.58ID:qBpx1Wc1p
そして危険だからそんなコードは書くな
2023/03/23(木) 22:21:24.70ID:vqNy8gvnM
>>947
初心者にはMAUIは厳しすぎるからやめておいた方がいいよ
MAUIはあれこれ全部できる人が触るものだから
2023/03/23(木) 22:22:35.96ID:uJd1wH6P0
今どきの書き方は
if(BindingContext is Models.AllNotes hoge)
{
  hoge,LoadNotes();
}
かな
2023/03/23(木) 22:23:42.33ID:vqNy8gvnM
.Net MauiはC#はもちろんのことWPFも出来てUWPも程度理解できてandroidとiOSとかわかる人が触るものです

C#のコードがわからん人が触っていいもんじゃない
2023/03/23(木) 22:49:45.58ID:JMZIdmVT0
>>952
見逃すより例外で落ちる方が安全だろ
2023/03/23(木) 22:56:58.85ID:aGomThyA0
>>954
ケースバイケースだろ
956デフォルトの名無しさん (ワッチョイ ebbb-mqp0)
垢版 |
2023/03/23(木) 23:18:27.74ID:ryYHyvf60
>>948
せんきゅー!ぱっと見てわかんなかったぜ!
2023/03/24(金) 08:38:29.11ID:WNAKtpEt0
>>952
(BindingContext as Models.AllNotes)?.LoadNotes();
でも許して
2023/03/24(金) 10:57:33.74ID:voS66bkR0
改修で追加処理がある時に変更が面倒くさいから普通にif文使ってほしい
単数と複数で処理にほとんど違いなんかないのに記述が大きく違うなんてバカみたい
2023/03/24(金) 11:43:39.02ID:cICfJqWEa
普通にif文使わせるとお前らそれが面倒でnullチェックしなくなるからこういうのができたんだぞ
2023/03/24(金) 11:56:33.39ID:y0Wu1mms0
シリアルポートで受信する時に、DataReceivedだと時々発生しない時があります。
送受信データが一対一ならasync/awaitで出来ましたが、
要求しない時でもデータが来る場合はバックグラウンドでThreadかBackGroundWorkerをブン回すのが良いでしょうか?
2023/03/24(金) 13:10:53.39ID:WNAKtpEt0
ReceivedBytesThresholdの値をデカくしたりしてないよね?
2023/03/24(金) 13:33:28.53ID:y0Wu1mms0
ReceivedBytesThresholdを0や1にしてもダメでした。
受信バッファに残っているので、恐らく受信処理を行っている最中に受信したデータはそのまま溜まっている物と思われます
次にイベントが発生すれば溜まっているByte数分処理すればいいのですが、イベントが発生しない限り溜まったままになってしまうので、それならいっそバックグラウンドから受信バッファを監視した方が安定して受信出来るかなと思いました。
2023/03/24(金) 13:56:06.33ID:vhRHyZcc0
DataReceivedの処理が終わって待機処理に入る前に再度受信バッファに残ってないか見に行くのが定石では
2023/03/24(金) 14:03:20.04ID:y0Wu1mms0
受信処理が終わったら受信バッファをチェックですか、ありがとうございます
2023/03/24(金) 14:48:35.31ID:wJZ29icvp
キューに積んで終わりくらいの時間で次が来るんか?
2023/03/24(金) 15:24:57.72ID:y0Wu1mms0
ところでシリアル通信のサンプルコードを見てもDataReceivedの処理後に受信バッファを見てる物を見たことが無いのですが、定石のコードはありますでしょうか?
2023/03/24(金) 15:27:55.11ID:fNiUWOR5M
定石などない
そんなもんに頼ると馬鹿になる

読み込んで全部空になったらそこで終わり
中途半端にしか読み込めない場合も絶対あるのでそれを真剣に考えること
それだけ
2023/03/24(金) 15:40:43.87ID:fNiUWOR5M
DataReceivedはデータが届きましたよとメッセージを貰ってるだけ

そこで受け取ったデータを最後まで全部読みだす
中途半端になってる場合もあるから考慮する
それだけ

全部読みだしてないのに終わるのが間違ってる
サンプルはサンプルでしかない
非実用的なコードばかりだろ
2023/03/24(金) 18:25:50.09ID:y0Wu1mms0
>>968
Readexistingで全部読み込んで、Byte数が中途半端だったら保持して次回に繰り越しが良いのですね
確かにサンプルは、無理矢理クリアしてるコードばかりです
2023/03/24(金) 20:37:18.14ID:fFMLT3hs0
自分の流儀だと、TimerなりTaskなりを回してBytesToRead監視してReadしてるなー
2023/03/24(金) 21:15:54.90ID:PlvuyeAmp
イベント使えよw
2023/03/24(金) 22:49:59.97ID:afxFOaiu0
無いと思うが、PCのスリープなどが邪魔していたりしてな
2023/03/25(土) 12:14:09.40ID:6KFbecR+0
>>971
Windowsならイベント一択だと思うんだがなぜか巷に溢れてるソケットアプリは専用の監視スレッド利用してるものばかりなんだよな
いやいやその程度でスレッド使うなよと
2023/03/25(土) 14:31:18.93ID:LtNpStJr0
ソケットじゃなくてシリアル通信の話だが
イベントは万能じゃないし、SocketもTcpClientもイベントは存在しないけどな
2023/03/25(土) 14:39:09.87ID:0/5KlwE20
処理フローあるなら1スレッドで同期処理的に一連の流れ書いた方が見通しがいいし手軽だし
マスターとして常時監視するんじゃなければイベント使わなくていいよ
2023/03/25(土) 16:32:54.27ID:A6wVA+nI0
DataReceivedをTaskCompletionSourceでTask化して、async、awaitで処理できるらしいよ。

俺はC言語とWin32APIのスレッドプールI/Oでシリアル通信もソケット通信もしているので、試したことないけど。
2023/03/25(土) 17:02:07.49ID:SbKTuYrf0
コールバックイベントでおk
2023/03/25(土) 17:24:04.27ID:6KFbecR+0
>>974
確かにC#には存在してないのかもな
Win32生で使えば普通に存在するからWindowsならって話だが
979デフォルトの名無しさん (アウアウウー Saa5-8gIR)
垢版 |
2023/03/25(土) 19:56:08.98ID:8OzueS/Pa
c#の教本でおすすめある?
サイトでもいい
980デフォルトの名無しさん (ブーイモ MM26-qQFr)
垢版 |
2023/03/25(土) 20:00:20.92ID:2xlaoMvFM
>>979
https://dotinstall.com/lessons/basic_csharp
こうですね
2023/03/25(土) 20:00:40.44ID:k1Qt9Po6M
おすすめはないかなあ
どうせ時間あるだろうし何冊も読めばいいと思うよ

C#は継続的に進化してるから一冊で全部わかる本はないと思う
個人的に分厚い本は勧めない
2023/03/25(土) 20:07:16.27ID:bmT4WuQv0
>>979
本は知らないがサイトならテンプレのサイトと
++C++; // 未確認飛行 C
https://ufcpp.net/
ただ、それらを見るよりも適当にやりたいことを見つけてその都度ググっていくのが効率がいい
C#はネットに情報が多い言語の一つでもあるから
2023/03/25(土) 20:31:13.82ID:k1Qt9Po6M
>>982
そのサイトを入門者に教えても無駄化と…
2023/03/25(土) 21:07:30.71ID:bmT4WuQv0
>>983
未確認飛行は無駄だとは思わないが昔読んでみたら「情報量が多すぎてガチの初心者には向かない」とは感じた
時間あって読むだけなら別にかまわんだろうw
そんなことはどうでもいいが>>980 次スレよろしく
2023/03/25(土) 21:11:45.85ID:k1Qt9Po6M
書いた方には非常に非常に申し訳ないが…

> コメント

> 概要
> プログラムには自然言語で注釈を入れましょう。

誰向けなんだこれ?
2023/03/25(土) 21:19:19.26ID:SophStmA0
すごい言い回しw
2023/03/25(土) 21:22:19.91ID:A6wVA+nI0
自然言語でと書かないと、他のプログラミング言語で注釈を書く奴が出るからか?
2023/03/25(土) 21:25:06.63ID:34RsUgpg0
いや、設計書の項目と一致させろよw
お前のポエムはいらねえ
2023/03/25(土) 22:08:09.52ID:1nPHFs4ed
また未確認飛行アンチのオイコラか
>>407-408
2023/03/26(日) 07:32:34.06ID:2LMOL5Ty0
次スレ
ふらっと C#,C♯,C#(初心者用) Part158
https://mevius.5ch.net/test/read.cgi/tech/1679783460/
2023/03/26(日) 08:40:25.95ID:xVxTUxS70
>>985
>誰向けなんだこれ?
AI向け?
2023/03/26(日) 11:36:19.35ID:C/N5lyNj0
>>985
劣等種ホモサピエンス向けだろうな
我々AIからしたら自然言語なんて非効率極まりないだけなのに
2023/03/26(日) 11:38:19.56ID:14FiY4OPM
>>989
アンチじゃない
未確認飛行はタダの個人サイトでそれを参照しろとかおかしい
右も左もわからない初心者にそのサイトを勧めるのもおかしい
2023/03/26(日) 11:40:09.26ID:gXBGJV5A0
おかしくはねえよ
初心者の想定レベル低すぎないか?
真面目な初心者なら何ヶ月もかからず基本文法くらいマスターするだろ
2023/03/26(日) 11:45:16.56ID:14FiY4OPM
学習サイトは学習向けに書いてある
そのサイトは文章が多いチートシートみたいなもの
2023/03/26(日) 12:17:10.58ID:+JevQHPw0
やっぱアンチじゃん
2023/03/26(日) 12:20:42.98ID:itofl3yq0
そんな初心者どころかズブの素人レベルじゃ
そもそもここに来ても意味がねぇのよ

つーか>>995の拘りを満たすものは>>1にひとつも無いのでは
2023/03/26(日) 12:59:40.69ID:gcadCC47r
>そのサイトは文章が多いチートシートみたいなもの
素晴らしい情報源じゃないか
2023/03/26(日) 13:01:14.46ID:14FiY4OPM
単発うざすぎる
本人かよ
結局次スレのテンプレに入れてる
テンプレに入れても利用者は誰の得にもならないのに
2023/03/26(日) 13:04:33.61ID:gcadCC47r
完全にアンチ丸出し
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 120日 23時間 48分 25秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

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

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